Glide配合CircleImageView加载圆形图片的巨坑

本篇本章讲述的是Gllide配合CircleImageView加载圆形图片的问题

注明:  本文属于原创,转发请标注说明转文地址

Glide是Google推荐的图片加载库,优缺点这里我们不一一讲解,有需要的同学可以自行百度,或者各大博客阅览学习.

回到正文:  在Glide4.0以前  我们还不能使用的Glide 自带的圆形图片加载库, 很多时候我们只能配合CircleImageView来实现圆形图片的加载,那时候我们可能对Glide还不是很熟悉,所以配合自定义控件遇到的一些奇怪问题,我们还尚不能彻底分析,解决.


Glide配合CircleImageView加载圆形图片的巨坑_第1张图片

  如上图所示, 当我们第一次进入页面,圆形图片默认加载了占位图(其实后面我才发现这其实是CircleImageView率先占了位置!!!),妈卖批~  什   么鬼  往下刷新一下又出来了? 网络问题么?

  刚开始产品找到我:"路遥,这个你看下,怎么第一次进来,加载是的默认图片,有的显示的是可以的 有的不行,我再次刷新又显示了"

 我微微一笑 : "啊~这个...可能是网络问题...哈哈  就这样把锅甩了出去,不过讲真的,那时我自己都以为是网络加载的问题"

 后来我发现很多小伙伴也遇到了这样的问题,所以才自己抽空深入了解下并且找到解决方案.

不可行方案: 

1:网上很多小伙伴说直接把占位图直接注释掉~不使用占位图


Glide配合CircleImageView加载圆形图片的巨坑_第2张图片

这个方案实在不可行,我们不单单说能不能再特殊情况下会解决问题,就说在网络加载失败的情况下,或者是网络加载延迟情况下,加载出来的图片是一张透明的圆形图片,亲测...显然这样的体验是对我们和用户不是友好的.....

2:不使用默认动画


Glide配合CircleImageView加载圆形图片的巨坑_第3张图片

其实 dontAnimate() 这个在加载本地图片 和网络延迟的情况下 是没有任何效果的.....

以上这些都不是终极解决的方案 或者说是错误的方案..那么我们该如何解决这个问题呢

Glide 4.0后 自带加载圆形图片功能

 这里我们会使用到 BitmapTransformation  有兴趣的小伙伴可以去了解下~

通过自定义Transformation 我们也可以改变圆角大小,来实现不同的圆形图片效果~


Glide配合CircleImageView加载圆形图片的巨坑_第4张图片

上图就是Glide  自带圆形图片使用方法~   我们可以把它封装成公共类 便于使用.

所以还有之前问题的小伙伴  尽快把Glide升级到4.0以上  替换CircleImageView吧!  和CircleImageView说拜拜~

你可能感兴趣的:(Glide配合CircleImageView加载圆形图片的巨坑)