美文网首页
Android Glide更新替换图片时 闪烁 闪白

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

作者: 因为我的心 | 来源:发表于2022-04-09 22:16 被阅读0次

    一、前言:

    项目中有对某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);
    }
    

    相关文章

      网友评论

          本文标题:Android Glide更新替换图片时 闪烁 闪白

          本文链接:https://www.haomeiwen.com/subject/eyrmsrtx.html