【问题标题】:Caching Imager using UNIVERSAL IMAGE LOADER使用 UNIVERSAL IMAGE LOADER 缓存 Imager
【发布时间】:2016-02-01 10:02:26
【问题描述】:

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

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

现在我可以知道图片是从缓存加载还是从 url 加载?

【问题讨论】:

  • 它是从 url 加载的。如果你从缓存中加载,你还会添加一些数学......
  • 如果你有互联网连接,它会从 url 加载,否则它会显示缓存
  • 即使存在网络,我也想从缓存中加载。仅第一次从网络加载,然后从缓存中加载

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


【解决方案1】:

您可以使用以下方法检查

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

这会让你知道这个

【讨论】:

    【解决方案2】:

    您可以将config.writeDebugLogs(); 添加到您的通用图像加载器配置中

    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 知道图片是从缓存加载还是从 url 加载

    【讨论】:

    • 它显示开始显示图像任务 [url_45*40] 从磁盘缓存加载图像 [url_45*40] .. 所以它从缓存中获取?
    • 当您缓存图像时,该图像可以在没有互联网的情况下加载。如果您不缓存,则每次加载图像时,您都需要连接到互联网。根据你的目的,你应该选择缓存还是不缓存
    • 磁盘缓存和内存有什么区别? .cacheOnDisk(true).cacheInMemory(false) 好不好?
    猜你喜欢
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    • 2020-03-24
    相关资源
    最近更新 更多