精彩文章免费看

Android Glide更新替换图片时 闪烁 闪白

一、前言:

项目中有对某View上图片定时刷新的机制,业务上很简单,图片来了显示在UI上。
然而实际更新图像时,现象上看会把之前的清掉然后再绘上新的,这个过程中闪动很明显。
之所以会闪白是因为没设View的background或placeholder,但如果有background且没有placeholder,则闪现的就是这个background,Glide有设placeholder,则闪现这个placeholder,在我的场景中这个体验很不好。

1、问题代码

Glide.with(mContext).load(filepath)
.centerInside()
.placeholder(R.drawable.image)
.error(R.drawable.image)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.into(iv);

2、解决,把之前的图像作为placeholder,这句.placeholder(iv.getDrawable())

Glide.with(mContext).load(filepath)
.centerInside()
.placeholder(iv.getDrawable())
.error(R.drawable.image)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.into(iv);

注意:同时recycleView设置取消动画: 刷新item的时候发现Glide加载的图片会闪一下,解决方法,去掉recycleview的加载动画。

/* * 关闭默认局部刷新动画 ,this代表recycleview*/
public void closeDefaultAnimator() {
     this.getItemAnimator().setAddDuration(0);
    this.getItemAnimator().setChangeDuration(0);
    this.getItemAnimator().setMoveDuration(0);
    this.getItemAnimator().setRemoveDuration(0);
    ((SimpleItemAnimator) this.getItemAnimator()).setSupportsChangeAnimations(false);