今天封装图片加载框架时,想使用Glide加载圆形图片,发现有几个坑,所以记录一下:
Glide的使用方法,这个应该很熟悉了,如下:
ImageView image;
String url = "图片url地址";
Glide.with(image.getContext()).load(url).into(image);
但是我们加载圆形图片或者给图片设置参数时,需要用到RequestOptions对象,由RequestManager管理。RequestOptions有默认的构造方法和多种静态构造方法,
比如圆形图片我们可以使用
RequestOptions requestOptions = RequestOptions.circleCropTransform();
返回对象本身
当我们需要自己对bitmap图片进行自定义时,我们需要继承BitmapTransformation这个类,这是一个抽象类,实现了Transformation<Bitmap>接口。
具体实现可参考GlideAPI里面的CircleCrop类。这是一个实现了圆形图片的类。所以我们加载圆形图片时,可以使用
Glide.with(this).load(url).apply(RequestOptions.bitmapTransform(new CircleCrop())).into(imageView);
或者
RequestOptions requestOptions = RequestOptions.circleCropTransform();
Glide.with(this).load(url).apply(requestOptions).into(imageView);
需要注意不要和centerInside等图片属性冲突。