我使用Universal Image Loader从uri中获取数据,比如说Activity A
,但我没有使用displayImage()
方法在{{1}再次从uri获取图像}}
相反,我想将已经存储在缓存中的图像提取到另一个Activity B
如何做到这一点?
我已使用这些选项初始化Image Loader
Activity B
然后调用它来获取图像
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.cacheOnDisc(true).cacheInMemory(true)
.imageScaleType(ImageScaleType.EXACTLY)
.displayer(new FadeInBitmapDisplayer(300)).build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
getApplicationContext())
.defaultDisplayImageOptions(defaultOptions)
.memoryCache(new WeakMemoryCache())
.discCacheSize(100 * 1024 * 1024).build();
ImageLoader.getInstance().init(config);
答案 0 :(得分:2)
解决方案:
是的,它在活动B中工作,但它正在进行不必要的连接 每次连接互联网时下载图像 滚动时在ListView中调用'getView()'方法。 “失败 在5000ms后连接到/192.168.1.3(端口80):连接失败: ENETUNREACH(网络无法访问)java.net.ConnectException:失败 在5000ms后连接到/192.168.1.3(端口80):连接失败: ENETUNREACH(网络无法访问)`
ImageLoader imageLoader = ImageLoader.getInstance();
File file = imageLoader.getDiskCache().get(image_url);
if (file==null) {
//Load image from network
}
else {
//Load image from cache
mImageView.setImageURI(Uri.parse(file.getAbsolutePath()));
}