首页 > 学院 > 开发设计 > 正文

Glide中centerCrop()与.transform()共用问题

2019-11-08 00:20:57
字体:
来源:转载
供稿:网友

转载请注明出处:http://blog.csdn.net/Alpha58/article/details/56835558

当我们在显示一张图片的时候,想让他等比例缩放到ImageView的大小,又想这张图片实现矩形圆角.

我们一开始会想到这么设置

.transform(new GlideRoundImage(getActivity()))

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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表