Android使用Glide加载带图片列表时,快速上拉加载更多会闪烁

Android使用Glide加载图片刷新时会闪烁

现在我们大部分人在使用图片的加载框架时都是用的Glide,而我们在利用Glide加载带图片的列表时,快速的上拉加载更多,就不可避免的出现图片闪烁的问题(先显示别的图再刷新回正确的图)。解决的方法格式各样,什么都有。

方法1

设置tag,反正我试的各种设置tag的方法,都是无效的。(具体怎么设置,百度吧)

方法2

设置默认图片,但是我设置也是无效的

.placeholder(R.drawable.head_default)
方法3

说是由于设置了setImageDrawable导致的,所以我修改成了下面这样,怎么说呢,加载一两页还行,加载多了还是会出现闪烁的情况

Glide.with(imageView.getContext())
                    .load(url)
                    .placeholder(R.drawable.head_default)
                    .diskCacheStrategy(DiskCacheStrategy.SOURCE)
                    .into(new SimpleTarget<GlideDrawable>() {
                        @Override
                        public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) {
                            imageView.setImageDrawable(null);
                            imageView.setBackground(resource);
                        }
                    });
方法4

去掉RecyclerView的默认动画,还是无效。

((SimpleItemAnimator) rlv.getItemAnimator()).setSupportsChangeAnimations(false);
方法5

设置Glide的不要跳过缓存,无效

.skipMemoryCache(false)
方法6

去掉Glide的过度动画,突然发现正常了。

.dontTransform()

最后我使用的公共加载图片的方法如下:

Glide.with(imageView.getContext())
                    .load(url)
                    .skipMemoryCache(false)
                    .dontTransform()    //解决了图片闪烁的问题
                    .placeholder(R.drawable.head_default)		//加载默认图片
                    .diskCacheStrategy(DiskCacheStrategy.SOURCE)
                    .into(new SimpleTarget<GlideDrawable>() {
                        @Override
                        public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) {
                            imageView.setImageDrawable(null);
                            imageView.setBackground(resource);
                        }
                    });

最后说一句,我后面测试发现当加载图片列表很多,速度很快时,还是会出现图片的闪烁,我不知道该怎么解决了。希望大家评论告诉一下我

你可能感兴趣的:(Android)