这是一个非常简单的问题,但我无法克服它。
我想要做的是,我有一个ImageView,我想使用UIL在其上设置图像,我能够做得很好。我的另一个需要是:
每次启动活动/片段时,它都会显示与特定URL对应的先前加载的图像,直到它下载新的图像。所以基本上,我想缓存图像,并且每次都显示缓存的图像。
我的初始化代码:
DisplayImageOptions displayOptions = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.stubimage)
.showImageForEmptyUri(R.drawable.imptyURL)
.showImageOnFail(R.drawable.failed).build();
ImageLoaderConfiguration configs = new ImageLoaderConfiguration.Builder(getApplicationContext())
.memoryCacheSize(41943040).defaultDisplayImageOptions(displayOptions)
.discCacheSize(104857600)
.threadPoolSize(10).build();
ImageLoader.getInstance().init(configs);
我做了一些挖掘并找到了一些代码,最终无法正常工作,如下所示: 我的使用代码:
String URL2="http://asset0.cbsistatic.com/cnwk.1d/i/tim/2012/02/13/Samsung_Galaxy_Note_35117983_28_610x458.jpg";
ImageLoader loader = ImageLoader.getInstance();
List<String> memCache = MemoryCacheUtil.findCacheKeysForImageUri(URL2, loader.getMemoryCache());
boolean cacheFound = !memCache.isEmpty();
if (!cacheFound) {
File discCache = DiscCacheUtil.findInCache(URL2, loader.getDiscCache());
if (discCache != null) {
cacheFound = discCache.exists();
}
}
Toast.makeText(this, "memCache:"+cacheFound, Toast.LENGTH_LONG).show();
if(ImageLoader.getInstance().getMemoryCache().get(URL2) != null)
Toast.makeText(this, "something is there", Toast.LENGTH_LONG).show();
else
Toast.makeText(this, "Nothing is there", Toast.LENGTH_LONG).show();
ImageLoader.getInstance().displayImage(URL2, (ImageView) findViewById(R.id.imageView1));
参考问题: