本篇本章讲述的是Gllide配合CircleImageView加载圆形图片的问题
注明: 本文属于原创,转发请标注说明转文地址
Glide是Google推荐的图片加载库,优缺点这里我们不一一讲解,有需要的同学可以自行百度,或者各大博客阅览学习.
回到正文: 在Glide4.0以前 我们还不能使用的Glide 自带的圆形图片加载库, 很多时候我们只能配合CircleImageView来实现圆形图片的加载,那时候我们可能对Glide还不是很熟悉,所以配合自定义控件遇到的一些奇怪问题,我们还尚不能彻底分析,解决.
如上图所示, 当我们第一次进入页面,圆形图片默认加载了占位图(其实后面我才发现这其实是CircleImageView率先占了位置!!!),妈卖批~ 什 么鬼 往下刷新一下又出来了? 网络问题么?
刚开始产品找到我:"路遥,这个你看下,怎么第一次进来,加载是的默认图片,有的显示的是可以的 有的不行,我再次刷新又显示了"
我微微一笑 : "啊~这个...可能是网络问题...哈哈 就这样把锅甩了出去,不过讲真的,那时我自己都以为是网络加载的问题"
后来我发现很多小伙伴也遇到了这样的问题,所以才自己抽空深入了解下并且找到解决方案.
不可行方案:
1:网上很多小伙伴说直接把占位图直接注释掉~不使用占位图
这个方案实在不可行,我们不单单说能不能再特殊情况下会解决问题,就说在网络加载失败的情况下,或者是网络加载延迟情况下,加载出来的图片是一张透明的圆形图片,亲测...显然这样的体验是对我们和用户不是友好的.....
2:不使用默认动画
其实 dontAnimate() 这个在加载本地图片 和网络延迟的情况下 是没有任何效果的.....
以上这些都不是终极解决的方案 或者说是错误的方案..那么我们该如何解决这个问题呢
Glide 4.0后 自带加载圆形图片功能
这里我们会使用到 BitmapTransformation 有兴趣的小伙伴可以去了解下~
通过自定义Transformation 我们也可以改变圆角大小,来实现不同的圆形图片效果~
上图就是Glide 自带圆形图片使用方法~ 我们可以把它封装成公共类 便于使用.
所以还有之前问题的小伙伴 尽快把Glide升级到4.0以上 替换CircleImageView吧! 和CircleImageView说拜拜~