创建类 继承BitmapTransformation
@Override protected Bitmap transform(@NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth, int outHeight) {
//判断图片是否为空
if (toTransform == null) { return null; }
//获取图片宽和高 int height = toTransform.getHeight(); int width = toTransform.getWidth();
//获取宽与高之间的最小值 int min = Math.min(height, width);
//获取开始截取的xy轴截取位置 int x = (height - min) / 2; int y = (width - min) / 2;
//创建一张宽高都为min的视图 Bitmap bitmap = Bitmap.createBitmap(min, min, Bitmap.Config.ARGB_8888);
//创建画布对象 Canvas canvas = new Canvas(bitmap);
//裁剪图片 起始位置x y 要截的图片宽度 高度 Bitmap bitmap1 = Bitmap.createBitmap(toTransform, x, y, min, min);
//创建画板对象 Paint paint = new Paint();
//设置Shader Bitmap TileMode有三种值 CLAMP拉伸 REPEAT重复 MIRROR镜像
paint.setShader(new BitmapShader(bitmap1, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP));
//圆的半径 int r = min / 2;
//画圆 canvas.drawCircle(r, r, r, paint); return bitmap; } @Override public void updateDiskCacheKey(MessageDigest messageDigest) { }