我正在尝试使用磁盘缓存(而不是内存缓存),因此我从网址下载我的图像并将其放在网格视图中。我只想下载一次我的图片。
我在google site:http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html
中找到了这个示例(bitmapFun)我发现这个例子有点复杂。 util包中有许多对象(AsyncTask,DiskLruCache,ImageCache,ImageFetcher,ImageResizer,ImageWorker,Utils)
是否有方法或教程显示如何在不使用所有这些对象的情况下使用磁盘Lru缓存。 我不想调整我的图像大小,我无法删除ImageResizer类。
答案 0 :(得分:2)
在这里你有一个很好的答案:Android image caching。报价:
“考虑使用Sergey Tarasevich的Universal Image Loader library。它附带:
//Multithread image loading. It lets you can define the thread pool size
//Image caching in memory, on device's file sytem and SD card.
//Possibility to listen to loading progress and loading events
Universal Image Loader允许对下载的图像进行详细的缓存管理,具有以下缓存配置:
UsingFreqLimitedMemoryCache: //The least frequently used bitmap is deleted when the cache size limit is exceeded.
LRULimitedMemoryCache: //The least recently used bitmap is deleted when the cache size limit is exceeded.
FIFOLimitedMemoryCache: //The FIFO rule is used for deletion when the cache size limit is exceeded.
LargestLimitedMemoryCache: //The largest bitmap is deleted when the cache size limit is exceeded.
LimitedAgeMemoryCache: //The Cached object is deleted when its age exceeds defined value.
WeakMemoryCache: //A memory cache with only weak references to bitmaps.
一个简单的用法示例:
ImageView imageView = groupView.findViewById(R.id.imageView);
String imageUrl = "http://domain.com/image.png";
ImageLoader imageLoader = ImageLoader.getInstance();
imageLoader.init(ImageLoaderConfiguration.createDefault(context));
imageLoader.displayImage(imageUrl, imageView);
此示例使用默认的UsingFreqLimitedMemoryCache
。