当我们在显示一张图片的时候,想让他等比例缩放到ImageView的大小,又想这张图片实现矩形圆角.
我们一开始会想到这么设置
.transform(new GlideRoundImage(getActivity()))
.centerCrop()
But,这样设置后,图片只有centerCrop效果,却没有矩形圆角效果.如图
但是这并不是我们想要的效果,然后会想着去掉centerCrop看看是怎样的
.transform(new GlideRoundImage(getActivity()))
结果却是这样的,没错! 图片并没有按比例缩放. 如图:
原因
看centerCrop()方法的源码可知,也是需要调用transform()方法的.所以前后共用CenterCrop会覆盖掉GlideRoundImage的效果
public BitmapRequestBuilder<ModelType, TranscodeType> centerCrop() {
return transform(glide.getBitmapCenterCrop());
}
解决方法:
.transform(new CenterCrop(getActivity()),new GlideRoundImage(getActivity()))
2个效果同时放在transform里面就可以解决问题了,效果图
附上矩形圆角的代码:,如下
源码地址:https://github.com/Alpha58/GlideRoundImage
Glide.with(context)
.load(url)
.transform(new CenterCrop(context), new GlideRoundTransform(context))
.diskCacheStrategy(DiskCacheStrategy.ALL)
.crossFade()
.into(view);