/** * 给ImageView加载普通图片 * * @param uri 图片资源所对应的URI * @param imageView 需要加载到的ImageView容器 * @param options 自定义的Display * @param outsideLoadingListener 加载事件监听器 * @param progressListener 进度监听器 */ private void loadImage( String uri, ImageView imageView, DisplayImageOptions options, ImageLoadingListener outsideLoadingListener, ImageLoadingProgressListener progressListener) { // use image cache String fileName = fileHandler.getFileNameInUrl(uri); String fullPath = mImageCacheDir + fileName; if (fileHandler.isFileExists(fullPath)) { imageLoader.displayImage( ImageLoaderHelper.URI_PREFIX_FILE + fullPath, imageView, options, outsideLoadingListener, progressListener); } else { imageLoader.displayImage( uri, imageView, options, new SaveCacheImageLoadingListener(fullPath, outsideLoadingListener), progressListener); } }
/** * 从缓存文件中获取Bitmap * * @param url 源图片在网络上的路径 * @param defRes 默认图片资源 * @return 缓存文件的Bitmap */ @Override public Bitmap getBitmapFromCachedFile(String url, int defRes) { String path = fileHandler.getCacheDirByType(IFileHandler.CacheDir.IMAGE) + fileHandler.getFileNameInUrl(url); if (!fileHandler.isFileExists(path)) { return BitmapFactory.decodeResource(context.getResources(), defRes); } return BitmapFactory.decodeFile(path); }
/** 初始化ImageLoader,在Application中执行 */ @Override public void initImageLoader() { initUIL(); if (imageLoader == null) imageLoader = ImageLoader.getInstance(); if (!imageLoader.isInited()) imageLoader.init(defaultUilLoader); mImageCacheDir = fileHandler.getCacheDirByType(CacheDir.IMAGE); }
/** * 清除图片缓存 * * @param size 需要保留的大小 * @param millSecAgo 只保留millSecAgo毫秒内的图片 */ @Override public void cleanImageCache(long size, long millSecAgo) { fileHandler.cleanCache(mImageCacheDir, size, millSecAgo); }