【问题标题】:Glide not animating ImageView loaded from cache滑翔没有动画从缓存加载的ImageView
【发布时间】:2014-11-07 19:42:51
【问题描述】:

我使用 Glide 作为我的图像加载器,并希望图像在背景中淡出。我遇到的问题是,一旦图像已经显示一次,它就不会动画。

int i = 0;
int[] images = {
        R.drawable.sunset1,R.drawable.sunset2,R.drawable.sunset3
}; 

if(i < images.length - 1){
 i++;
}else{
 i = 0;
}
Glide.with(MainActivity.this).load(images[i]).placeholder(imageView.getDrawable()).crossFade(1000).into(imageView);

【问题讨论】:

标签: android imageview handler android-glide


【解决方案1】:

这看起来像是 Glide 的预期行为。如果你查看animate方法的源代码,评论中有这段文字:

只有在资源被异步加载(即不在内存缓存中)时才会运行

要绕过它,您可以简单地使用ImageView#startAnimation 方法让图像动画化。

【讨论】:

    【解决方案2】:

    我也遇到了同样的问题。

    用 glide 实现添加这个:

    .diskCacheStrategy(DiskCacheStrategy.NONE)
    .skipMemoryCache(true)
    

    例如:

    Glide.with(requireContext())
                  .load(imageUrl)
                  .diskCacheStrategy(DiskCacheStrategy.NONE)
                  .skipMemoryCache(true)
                  .into(it)
    

    还有另一个选项可以解决这个问题,如果您能够识别图像更改,则为您的新文件提供以下名称:

    .signature(new StringSignature(String.valueOf(MY_FILE_NAME)))
    

    如果您想每次都使用最新图像加载图像,请使用:

    .signature(new StringSignature(String.valueOf(System.currentTimeMillis())))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      • 1970-01-01
      • 1970-01-01
      • 2017-05-27
      • 2020-05-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多