タイトルがすべてを物語っていると思います。私は試した:
imageLoader.getMemoryCache().get(key);
画像 uri をキーにしますが、常に戻りますnull
設定でキャッシュを有効にしましたが。
タイトルがすべてを物語っていると思います。私は試した:
imageLoader.getMemoryCache().get(key);
画像 uri をキーにしますが、常に戻りますnull
設定でキャッシュを有効にしましたが。
を使用しMemoryCacheUtils
ます。
MemoryCacheUtils.findCachedBitmapsForImageUri(imageUri, ImageLoader.getInstance().getMemoryCache());
メモリ キャッシュには、1 つのイメージに対して複数のビットマップ (異なるサイズ) を含めることができます。そのため、メモリ キャッシュは、画像の URL ではなく、特別なキーを使用します。
それは MemoryCacheUtil sである必要があるため、使用する必要があります
MemoryCacheUtils.findCachedBitmapsForImageUri(imageUri, ImageLoader.getInstance().getMemoryCache());
ユニバーサル イメージ ローダー ライブラリを使用しているときに、リモート イメージが既にキャッシュに読み込まれているかどうかをローダーが確認するのに時間がかかる場合があります。キャッシュ ファイルを直接ロードするには、次の方法を使用して、リモート ファイルのローカル コピーが既に作成されているかどうかを確認します。
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()));
}
ここで確認してください ここにリンクの説明を入力してください
次のようなユーティリティ クラスで簡単なメソッドを作成できると思います。
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)){
//
}