在Android中使用Glide进行预取图片

4

我有一个活动,它将使用淡入淡出动画逐个加载图像到同一ImageView中。为了提供良好的用户体验,我想异步预取这些图像并以恒定流显示它们。我想使用Glide来实现上述行为。但我很困惑,因为在互联网上找到了两种不同的预取(缓存)图像的方法。第一种是使用Glide的 .preload()方法:

Glide.with(this)
.load(url)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.preload()

第二种方法是使用Glide的.downloadOnly(int, int)方法:
Glide.with(applicationContext)
.load(yourUrl)
.downloadOnly(500, 500);

我有两个问题:

  1. preloaddownloadOnly 之间的区别是什么?哪一个最适合我的情况?
  2. 如何知道我所有的图片都已经被预取并且可以使用上述(最佳方法之一)之一来显示图片?
1个回答

2
请看这里的Glide文档:Glide文档。查找名为“DrawableTypeRequest”的类,该类具有preload()和downloadOnly()方法。正如文档所述:preload()将使用Target.SIZE_ORIGINAL作为目标宽度和高度将资源预加载到缓存中。等同于调用带有Target.SIZE_ORIGINAL作为宽度和高度的preload(int, int)。downloadOnly(int width, int height)将原始未修改数据加载到缓存中,并返回可用于检索包含数据的缓存文件的Future。我建议您使用preload()方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接