2013-03-19 38 views

Trả lời

32

Sử dụng MemoryCacheUtils.

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

Bộ nhớ cache có thể chứa nhiều bitmap (kích thước khác nhau) cho một hình ảnh. Vì vậy, bộ nhớ cache sử dụng các phím đặc biệt, không phải url hình ảnh.

+0

Vâng, hoạt động, cảm ơn. – FWeigl

+0

@NOSTRA điều này không hoạt động đối với tôi. Nếu tôi sử dụng: MemoryCacheUtil.findCachedBitmapsForImageUri (url, ImageLoader.getInstance()); yêu cầu tôi truyền, vì vậy ... điều này có đúng không? MemoryCacheUtil.findCachedBitmapsForImageUri (url, (MemoryCacheAware ) ImageLoader.getInstance()); – cesards

+0

Đã sửa câu trả lời. – NOSTRA

2

Nó phải là MemoryCacheUtil s, vì vậy bạn nên sử dụng

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

Đôi khi, khi sử dụng các thư viện hình ảnh Loader Universal, có đến một thời gian mà bộ nạp mất một thời gian để xác minh xem các hình ảnh từ xa có đã được tải trong bộ nhớ cache của bạn. Để tải các tập tin bộ nhớ cache trực tiếp, bạn có thể sử dụng phương pháp sau đây để kiểm tra xem một bản sao cục bộ của các tập tin từ xa đã được đưa ra:

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

kiểm tra nó ở đây enter link description here

1

Tôi nghĩ rằng bạn có thể tạo một đơn giản phương pháp trong lớp tiện ích của bạn như thế này:

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

và sử dụng nó như:

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

Để sử dụng bộ nhớ cache trên đĩa bên dưới mã

public static boolean isDiskCache(String url) { 
     File file = DiskCacheUtils.findInCache(url, ImageLoader.getInstance().getDiskCache()); 
     return file != null; 
} 
Các vấn đề liên quan