Intereting Posts
Не удалось разрешить библиотеку в студии Android OnCreateOptionsMenu внутри фрагментов Максимальный предел Intent.putExtras? Могу ли я включить режим разработчика для пользователя, отличного от владельца, на планшете Android? ActionBar Совместимость не отображает логотип на Android 2.3.3 Доступ к общим предпочтениям из разных действий (Android) Мобильное управление Android Очистить фокус EditText, когда кнопка возврата нажата, когда отображается экранная панель Как получить основной класс активности или имя класса моего приложения? Как открыть файл APK для всех версий Android Android: масштабировать графическое или фоновое изображение? Новый рендеринг gms.maps.MapView немного отстает в ListView? Службы Google Play устарели. Требуется 10084000, но найдено 9879470. Не удается обновить Как создать пакет андроидной версии релиза (aar) в Android Studio (не отлаживать) Виброзвонок и звук по умолчанию для уведомления

Проверьте, находится ли изображение в кеше – универсальный загрузчик изображений

Думаю, в названии говорится все. Я пытался:

imageLoader.getMemoryCache().get(key); 

С изображением uri как ключом, но он всегда возвращает null

Хотя я включил кеширование в конфиге.

Solutions Collecting From Web of "Проверьте, находится ли изображение в кеше – универсальный загрузчик изображений"

Используйте MemoryCacheUtils .

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

Кэш памяти может содержать несколько растровых изображений (размер шрифта) для одного изображения. Таким образом, в кеше памяти используются специальные ключи, а не URL-адреса изображений.

Это должен быть MemoryCacheUtil s , поэтому вы должны использовать

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

Иногда при использовании библиотеки Universal Image Loader наступает время, когда загрузчик занимает некоторое время, чтобы проверить, было ли удаленное изображение уже загружено в ваш кеш. Чтобы загрузить файл кэша напрямую, вы можете использовать следующий метод, чтобы проверить, была ли сделана локальная копия удаленного файла:

  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)){ // } 

Для кеша диска используйте код ниже

 public static boolean isDiskCache(String url) { File file = DiskCacheUtils.findInCache(url, ImageLoader.getInstance().getDiskCache()); return file != null; }