6

我使用 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);
4

2 回答 2

0

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

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

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

于 2015-07-08T17:14:41.517 回答
0

我只是有同样的问题。

用 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())))
于 2021-09-09T00:02:55.357 回答