2013-03-19 19 views

cevap

32

MemoryCacheUtils'u kullanın.

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

Bellek önbelleği, bir görüntü için birkaç bitmap (diffenrent boyutu) içerebilir. Bu nedenle, bellek önbelleği, görüntü URL'lerini değil, özel anahtarları kullanır. Evrensel Görüntü Yükleyici kütüphanesi kullanılırken

+0

Evet, teşekkürler. – FWeigl

+0

@NOSTRA bu benim için çalışmıyor. Kullanıyorsam MemoryCacheUtil.findCachedBitmapsForImageUri (url, ImageLoader.getInstance()); Döküm için bana sorar, yani ... bu doğru mu? MemoryCacheUtil.findCachedBitmapsForImageUri (url, (MemoryCacheAware ) ImageLoader.getInstance()); – cesards

+0

Cevabı düzeltildi. – NOSTRA

2

Eğer Bazen

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

kullanmalıdır, bu yüzden MemoryCacheUtil s olmalı, uzaktan görüntü olup olmadığını doğrulamak için yükleyici bir süre alır bir zaman gelir Önbellekte zaten yüklü.

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

burada enter link description here

1

kontrol Sana basit oluşturabilirsiniz düşünüyorum: doğrudan önbellek dosyası yüklemek için, uzak dosyayı yerel kopyası zaten yapılmış olup olmadığını kontrol etmek için aşağıdaki yöntemi kullanabilirsiniz Bu gibi yarar sınıfında yöntemi:

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

ve kullanma hoşuna:

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

Disk önbellek kullanımı için aşağıdaki kodu kullanın

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