使用UNIVERSAL IMAGE LOADER缓存成像仪

时间:2016-02-01 10:02:27

标签: android universal-image-loader image-caching

我正在尝试使用通用图像加载器缓存图像

DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder().cacheOnDisk(true).cacheInMemory(true).imageScaleType(ImageScaleType.EXACTLY).resetViewBeforeLoading(true)
            .displayer(new BitmapDisplayer(100)).bitmapConfig(Bitmap.Config.RGB_565).build();

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext()).defaultDisplayImageOptions(defaultOptions).memoryCache(new WeakMemoryCache())
            .diskCacheSize(10 * 1024 * 1024).build();

ImageLoader.getInstance().init(config);

用于显示图像

ImageLoader.getInstance().displayImage(imageUrl, imageview,defaultOptions);

现在我可以知道图像是从缓存还是从网址加载的?

2 个答案:

答案 0 :(得分:0)

您可以使用以下方法检查

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

这会让你知道这个

答案 1 :(得分:0)

您可以将config.writeDebugLogs();添加到Universal Image Loader配置

ImageLoaderConfiguration.Builder config = new    ImageLoaderConfiguration.Builder(context);
        config.threadPriority(Thread.NORM_PRIORITY - 2);
        config.denyCacheImageMultipleSizesInMemory();
        config.diskCacheFileNameGenerator(new Md5FileNameGenerator());
        config.diskCacheSize(50 * 1024 * 1024); // 50 MiB
        config.tasksProcessingOrder(QueueProcessingType.LIFO);
        config.writeDebugLogs(); // Remove for release app

        // Initialize ImageLoader with configuration.
        ImageLoader.getInstance().init(config.build());

然后在加载图片时,检查 logcat 以了解图片是从缓存还是从网址加载