【发布时间】:2014-07-07 10:13:24
【问题描述】:
我有一个应用程序可以在列表视图的每个项目上加载图像,我使用 Volley 让我的生活更轻松;如果之前已经下载过,我需要从磁盘加载图像。
问题:它不起作用。它需要重新下载图像。即使退出应用程序,我也需要保存图像。
奇怪:它只适用于一个特定的图像(它与大小无关)!
我用了什么:我用这个网站设计了这个:https://github.com/rdrobinson3/VolleyImageCacheExample。
守则:
String godzilla = "http://vineland.pynchonwiki.com/wiki/images/c/cf/Godzilla.jpg";
//String meme = "http://upload.wikimedia.org/wikipedia/en/d/d7/Meme_Many_Journeys.jpg";
ImageCacheManager.getInstance().getImageLoader().get(godzilla, new ImageLoader.ImageListener() {
@Override
public void onResponse(ImageLoader.ImageContainer imageContainer, boolean b) {
viewHolder.backgroundImage = imageContainer.getBitmap();
updateBackgroundImage(viewHolder, viewHolder.backgroundImage, object);
updateLayoutAlignmentParams(viewHolder);
}
@Override
public void onErrorResponse(VolleyError volleyError) {
}
});
if(viewHolder.backgroundImage != null)
updateBackgroundImage(viewHolder, viewHolder.backgroundImage, object);
我已经尝试过 meme 网站,但仍然存在问题。我有一个特定的站点,其中包含一个奇怪的图像。这使它更加混乱。
编辑:附加信息,似乎在将 lruEntries 添加为 lruEntries.remove(entry.key 正在 completeEdit() 上调用时出错。
【问题讨论】:
-
我正在搜索有关 volley DiskBasedCache 的信息,我看到了您的帖子,我遇到了
DiskBasedCache的问题。我已经能够将它缓存在内存中,是否可以提供一个简单的示例来说明如何为图像添加内存缓存和基于磁盘的缓存?
标签: android listview caching disk android-volley