使用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)]。但有没有办法直接获取Bitmap而不是文件?
如果我同时指定cacheInMemory()和cacheOnDisc(),图像会保存两次吗?这里是否有额外的内存消耗,因为图像将被保存在内存和光盘中?请帮帮我。
提前致谢
答案 0 :(得分:1)
imageLoader.displayImage(imageUri, imageView, displayOptions, new ImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
// Here loadedImage is you Bitmap object.
}
});
答案 1 :(得分:1)
尝试使用loadImageSync(String uri)
。它为您提供位图。
如果你想从位图中抽取
Drawable d = new BitmapDrawable(getResources(),imageLoader.loadImageSync(url);