Android图片缓存框架 - Glide自定义圆角 (五)

目录

1. Glide API

2. Glide导入包

3. Glide 7种加载图片方式

4. 取消加载

5 Glide加载GIF

6. Glide的RequestOption

7. Glide自定义圆角

7.1 定义圆角类

7.2 添加圆角

8. RequestBuilder

9. Glide设置Listener

10 Glide初始化配置

 


7. Glide自定义圆角

7.1 定义圆角类

定义:CornersTransform

代码如下:

public class CornersTransform extends BitmapTransformation {
    private float radius;

    public CornersTransform(int radius) {
        this.radius = radius;
    }

    @Override
    protected Bitmap transform(@NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth,
 int outHeight)
   {
        return cornersImage(pool, toTransform);
    }

    private Bitmap cornersImage(BitmapPool pool, Bitmap bitmapSource) {
        Bitmap tempBitmap = null;
        try {
            if (bitmapSource == null) {
                return null;
            }
            tempBitmap = pool.get(bitmapSource.getWidth(), bitmapSource.getHeight(), 
                                 Bitmap.Config.ARGB_8888);
            if (tempBitmap == null) {
                tempBitmap = Bitmap.createBitmap(bitmapSource.getWidth(), 
                                  bitmapSource.getHeight(), Bitmap.Config.ARGB_8888);
            }
            Canvas canvas = new Canvas(tempBitmap);
            Paint paint = new Paint();
            paint.setShader(new BitmapShader(bitmapSource, BitmapShader.TileMode.CLAMP, 
                                   BitmapShader.TileMode.CLAMP));
            paint.setAntiAlias(true);

            RectF rectF = new RectF(0f, 0f, bitmapSource.getWidth(), 
                                   bitmapSource.getHeight());
            canvas.drawRoundRect(rectF, radius, radius, paint);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return tempBitmap;
    }

    @Override
    public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {

    }
}

7.2 添加圆角

int radius = 30;
RequestOptions options = new RequestOptions().transform(new CornersTransform(radius));

Glide.with(getApplicationContext()).load(imageUrl).apply(options).into(imageView);

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值