(Glide) 从缓存中获取图像(如果存在)
(Glide) Getting image from cache if it exists
我在我的应用程序中使用 Glide 时遇到问题。据我所知,如果图像被下载一次并且我从其他 activity 的缓存中请求图像,Glide 必须快速显示图像。我有这种行为,但不是在我的应用程序中。图片加载速度非常慢(大约 3 秒),但在另一个应用程序中大约为 0.4 秒。
我调用 Glide 的代码:
Glide.with(this)
.load(url)
.signature(new StringSignature(url))
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(mHeader);
与其他activity代码相同。
你能帮帮我吗?
谢谢
您不需要 signature(url)
部分,模型(在您的情况下为 url
字符串)已经是缓存键的一部分。
问题可能是您的 header 改变了大小。对于缓存命中,视图大小(= 生成的位图大小)需要保持不变。但是,由于您正在进行 ALL
缓存,因此负载应该仍然很快。 url 中是否有任何变化,比如 sessionid 或类似的?那会使缓存丢失。
如果您正在加载的 url 是动画 GIF RESULT
缓存可能是罪魁祸首,here's a reference。
我在我的应用程序中使用 Glide 时遇到问题。据我所知,如果图像被下载一次并且我从其他 activity 的缓存中请求图像,Glide 必须快速显示图像。我有这种行为,但不是在我的应用程序中。图片加载速度非常慢(大约 3 秒),但在另一个应用程序中大约为 0.4 秒。 我调用 Glide 的代码:
Glide.with(this)
.load(url)
.signature(new StringSignature(url))
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(mHeader);
与其他activity代码相同。 你能帮帮我吗? 谢谢
您不需要 signature(url)
部分,模型(在您的情况下为 url
字符串)已经是缓存键的一部分。
问题可能是您的 header 改变了大小。对于缓存命中,视图大小(= 生成的位图大小)需要保持不变。但是,由于您正在进行 ALL
缓存,因此负载应该仍然很快。 url 中是否有任何变化,比如 sessionid 或类似的?那会使缓存丢失。
如果您正在加载的 url 是动画 GIF RESULT
缓存可能是罪魁祸首,here's a reference。