0

ディスク キャッシュ (メモリ キャッシュではない) を使用しようとしているので、URL から画像をダウンロードしてグリッド ビューに配置します。画像を一度だけダウンロードしたい。

Google サイトでこの例 (bitmapFun) を見つけました: http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html

この例は少し複雑だと思いました。util パッケージには多くのオブジェクトがあります (AsyncTask、DiskLruCache、ImageCache、ImageFetcher、ImageResizer、ImageWorker、Utils)

これらすべてのオブジェクトを使用せずにディスク Lru キャッシュを使用する方法を示す方法またはチュートリアルはありますか。画像のサイズを変更したくないのですが、ImageResizer クラスを削除できませんでした。

4

1 に答える 1

2

ここに良い答えがあります:Androidの画像キャッシュ。引用 :

「Sergey Tarasevich によるUniversal Image Loader ライブラリの使用を検討してください。以下が付属しています。

//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

于 2013-01-28T16:25:29.363 に答える