2013-03-19 12 views

Odpowiedz

32

Użyj MemoryCacheUtils.

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

Pamięć podręczna pamięci może zawierać kilka bitmap (różne rozmiary) dla jednego obrazu. Pamięć podręczna pamięci używa specjalnych klawiszy, a nie adresów URL obrazu.

+0

Tak, to działa, dziękuję. – FWeigl

+0

@NOSTRA to nie działa dla mnie. Jeśli używam: MemoryCacheUtil.findCachedBitmapsForImageUri (url, ImageLoader.getInstance()); prosi mnie o casting, więc ... czy to prawda? MemoryCacheUtil.findCachedBitmapsForImageUri (url, (MemoryCacheAware ) ImageLoader.getInstance()); – cesards

+0

Naprawiono odpowiedź. – NOSTRA

2

Należy MemoryCacheUtil s, więc należy użyć

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

Czasami podczas korzystania z biblioteki Loader Obraz uniwersalny, przychodzi czas, w którym ładowarka zajmuje trochę czasu, aby sprawdzić, czy pilot obraz ma został już załadowany do Twojej pamięci podręcznej. Aby wczytać plik cache bezpośrednio, można użyć następującej metody, aby sprawdzić, czy lokalna kopia pliku zdalnego została już wykonana:

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())); 
} 

to sprawdzić tutaj enter link description here

1

myślę, że można stworzyć prosty metoda w klasie użytkowej tak:

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; 
} 

i używać go jak:

if(Utils.isImageAvailableInCache(imageUrl)){ 
// 
     } 
2

Do buforowania dysku użyj kodu poniżej:

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