1

画像のダウンロードに Universal Image Loader を使用しています。これが私の構成と表示オプションです。

File cacheDir = getApplicationContext().getCacheDir();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
    getApplicationContext())
    .discCache(new UnlimitedDiscCache(cacheDir)).threadPoolSize(3)
    .denyCacheImageMultipleSizesInMemory()
    .tasksProcessingOrder(QueueProcessingType.LIFO)
    .discCacheFileNameGenerator(new HashCodeFileNameGenerator())
    .build();

options = new DisplayImageOptions.Builder()
    .cacheOnDisc().bitmapConfig(Bitmap.Config.RGB_565)
    .imageScaleType(ImageScaleType.EXACTLY).resetViewBeforeLoading()
    .showStubImage(R.drawable.bt_fine_dining).build();

すべて正常に動作しています。しかし、画像が既に存在するかどうかを確認したい。discCacheUtil を使用すると、イメージのファイルを取得できます。[DiscCacheUtil.findInCache(imageUri, discCache)]. しかし、ファイルの代わりにビットマップを直接取得する方法はありますか??

また、 cacheInMemory() と cacheOnDisc() の両方を指定すると、画像は2回保存されますか?? 画像はメモリとディスクの両方に保存されるため、ここで余分なメモリが消費されますか? 私を助けてください。

前もって感謝します

4

2 に答える 2

1

を使ってみてくださいloadImageSync(String uri)。ビットマップを提供します。

ビットマップから描画可能にしたい場合

Drawable d = new BitmapDrawable(getResources(),imageLoader.loadImageSync(url);
于 2014-02-25T22:59:37.500 に答える