如何通过Universal Image Loader

时间:2015-12-08 10:09:47

标签: android universal-image-loader

我使用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);

1 个答案:

答案 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()));
        }