我正在使用 Universal Image Loader 下载图像。这是我的配置和显示选项。
File cacheDir = getApplicationContext().getCacheDir();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
getApplicationContext())
.discCache(new UnlimitedDiscCache(cacheDir)).threadPoolSize(3)
.denyCacheImageMultipleSizesInMemory()
.tasksProcessingOrder(QueueProcessingType.LIFO)
.discCacheFileNameGenerator(new HashCodeFileNameGenerator())
.build();
options = new DisplayImageOptions.Builder()
.cacheOnDisc().bitmapConfig(Bitmap.Config.RGB_565)
.imageScaleType(ImageScaleType.EXACTLY).resetViewBeforeLoading()
.showStubImage(R.drawable.bt_fine_dining).build();
一切正常。但我想检查图像是否已经存在。使用 discCacheUtil 能够获取图像文件。[DiscCacheUtil.findInCache(imageUri, discCache)]。但是有没有办法直接获取位图而不是文件?
而且如果我同时指定 cacheInMemory() 和 cacheOnDisc() ,图像会被保存两次吗?这里是否有任何额外的内存消耗,因为图像将同时保存在内存和磁盘中?请帮我。
提前致谢