13

タイトルがすべてを物語っていると思います。私は試した:

imageLoader.getMemoryCache().get(key); 

画像 uri をキーにしますが、常に戻りますnull

設定でキャッシュを有効にしましたが。

4

5 に答える 5

32

を使用しMemoryCacheUtilsます。

MemoryCacheUtils.findCachedBitmapsForImageUri(imageUri, ImageLoader.getInstance().getMemoryCache());

メモリ キャッシュには、1 つのイメージに対して複数のビットマップ (異なるサイズ) を含めることができます。そのため、メモリ キャッシュは、画像の URL ではなく、特別なキーを使用します。

于 2013-03-19T16:46:01.967 に答える
2

それは MemoryCacheUtil sである必要があるため、使用する必要があります

MemoryCacheUtils.findCachedBitmapsForImageUri(imageUri, ImageLoader.getInstance().getMemoryCache());
于 2014-06-07T17:49:51.553 に答える
1

ユニバーサル イメージ ローダー ライブラリを使用しているときに、リモート イメージが既にキャッシュに読み込まれているかどうかをローダーが確認するのに時間がかかる場合があります。キャッシュ ファイルを直接ロードするには、次の方法を使用して、リモート ファイルのローカル コピーが既に作成されているかどうかを確認します。

    File file = imageLoader.getDiscCache().get(url);  
 if (!file.exists()) {  
      DisplayImageOptions options = new DisplayImageOptions.Builder()  
      .cacheOnDisc()  
      .build();  
      imageLoader.displayImage(url, imageView, options);  
 }  
 else {  
      imageView.setImageURI(Uri.parse(file.getAbsolutePath()));  
 }  

ここで確認してください ここにリンクの説明を入力してください

于 2014-10-02T12:56:06.803 に答える
1

次のようなユーティリティ クラスで簡単なメソッドを作成できると思います。

public static boolean isImageAvailableInCache(String imageUrl){
    MemoryCache memoryCache = ImageLoader.getInstance().getMemoryCache();
    if(memoryCache!=null) {
        for (String key : memoryCache.keys()) {
            if (key.startsWith(imageUrl)) {
                return true;
            }
        }
    }
    return false;
}

次のように使用します。

   if(Utils.isImageAvailableInCache(imageUrl)){
//
      }
于 2015-10-27T11:15:31.220 に答える