出现原因:看centerCrop()方法的源码可知,也是需要调用transform()方法的.所以前后共用CenterCrop会覆盖掉GlideRoundImage的效果
解决办法:2个效果同时放在transform里面就可以解决问题了。
Glide4.0
使用了glide4.0.0 +后,.transform方法参数改变,不能添加new CenterCrop(Context context)方法,修改GlideRoundTransform 继承CenterCrop 不在继承BitmapTransformation 如下:
然后引用:
就可以正常显示了
原因,Glide图片加载是异步的,RecyclerView的Item复用机制会利用已绘制好的Item,因此会出现加载完成后,但Item的position已经改变了,Glide再加载到相应的position的item上面。解决方案是对比控件的Tag,如果用Glide加载则需要在res/value文件夹中新建一个ids.xml文件,设置一个Id,具体做法如下:a
```
if(!TextUtils.isEmpty(item.avatar)) {
ivAvatar.setTag(R.id.image_id, item.avatar)
if(ivAvatar.getTag(R.id.image_id) !=null&&TextUtils.equals(item.avatar, (String) ivAvatar.getTag(R.id.image_id))) {
GlideImgManager.loadCircleHead(mContext, item.avatar, ivAvatar)
}
}
```
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)