ImageLoader 作为加载图片的第三方库,有一些常用代码块
1.清空过期磁盘缓存
UilImageLoaderHelper.java
@Override
public void clearExpiredDiskCaches() {
ExecutorUtils.execute(new Runnable() {
@Override
public void run() {
synchronized (UilImageLoaderHelper.class) {
for (Map.Entry<String, Long> entry : imagesExpirationMap.entrySet()) {
if (System.currentTimeMillis() > entry.getValue()) {
DiskCacheUtils.removeFromCache(entry.getKey(), ImageLoader.getInstance().getDiskCache());
sharedPreferencesHelper.removePreferences(entry.getKey());
imagesExpirationMap.remove(entry.getKey());
}
}
}
}
});
}
2.从本地缓存获得图片
public static Bitmap getBitmapFromCache(String uri, int width, int height) {
if (TextUtils.isEmpty(uri)) {
return null;
}
boolean cached = true;
ImageDownloader.Scheme scheme = ImageDownloader.Scheme.ofUri(uri);
if (scheme == ImageDownloader.Scheme.HTTP || scheme == ImageDownloader.Scheme.HTTPS || scheme ==
ImageDownloader.Scheme.UNKNOWN) {
// non local resource
cached = MemoryCacheUtils.findCachedBitmapsForImageUri(uri, ImageLoader.getInstance()
.getMemoryCache()).size() > 0 || DiskCacheUtils.findInCache(uri, ImageLoader.getInstance()
.getDiskCache()) != null;
}
if (cached) {
Bitmap bitmap = ImageLoader.getInstance().loadImageSync(uri, new ImageSize(width, height));
if (bitmap == null) {
LogUtil.e(TAG, "load cached image failed, uri =" + uri);
}
return bitmap;
}
return null;
}
参考文献
Java Code Examples for com.nostra13.universalimageloader.utils.DiskCacheUtils