解决Glide加载图片闪烁的问题(感觉加载了两遍 !!!)

时间:2024-03-28 19:23:00

今天由于项目需求的原因, 需要把原来的ViewPager的长方形图片转成圆角图片.

一直觉得Glide很强大, 应该可以直接设置圆角图片, 但是输入 . 之后并没有找到这个方法, 顿时一大片问号飘过 !!!

下面来说说遇到的问题:

1. 之前Glide 3.0+ 都是直接Glide. 点点点就行了, 现在升级到Glide 4.0+, 需要把这些配置全部写在RequestOptions这个方法里.

例如: 

dontAnimate() //去掉动画, skipMemoryCache() //不使用缓存等

配置好后, 需要在Glide使用apply(options)方法

例如:

Glide.with(mContext)
       .load(url)
       .apply(options)
       .into(imageView);

2. 既然是要设置圆角, 那么肯定是要自己自定义来写了, 因此需要自己写个类继承 BitmapTransformation, 然后重写其中两个方法.

上代码:

解决Glide加载图片闪烁的问题(感觉加载了两遍 !!!)

注意: 注释部分一定要注意 !!!

自己搜到的基本是这些代码, 也显示圆角图片了,  但是又出现了一个新的问题.

3. Glide加载圆角图片, 第一张图片会闪烁 !!!

很无语!

一直认为Glide很强大, 肯定有设置圆角的方法,  经过一段时间的源码查找,  还真找到了 --> 

new RoundedCorners(16); //就是那么简单,  这个鬼难找

使用了这句代码, 运行了还真没闪烁, 点击去源码看了一下, 主要是这些区别:

解决Glide加载图片闪烁的问题(感觉加载了两遍 !!!)

仿照源码写了一下, 加进去, 运行果然没有闪烁, 很开森!!!

具体什么原因, 还没有研究出来, 很悲哀.

虽然不知道什么原因, 功能解决了, 还是可以了, 特此记录一下.