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);