从Android的通用图像加载器下载图像流(Download Image stream from a

2019-07-05 03:01发布

我使用Android 通用的图像加载在MonoDroid的我的Android应用程序。

有一段时间我需要一些图像保存在SD卡。 在这种情况下,我需要下载的流图像,然后把它们保存到SD卡。

有没有办法通过流与此库下载图像。 因为在许多情况下,图像库中的缓存?

Answer 1:

UIL可以缓存在SD卡上的图像(启用DisplayImageOptions缓存)。 您可以定义自己的文件夹高速缓存(在ImageLoaderConfiguration)。

如果你想显示使用UIL SD卡内的影像,你应该通过网址,如: file:///mnt/sdcard/MyFolder/my_image.png

即使用file://前缀。

UPD:如果你想保存在SD卡上的图像:

    String imageUrl = "...";
    File fileForImage = new File("your_path_to_save_image");

    InputStream sourceStream;
    File cachedImage = ImageLoader.getInstance().getDiscCache().get(imageUrl);
    if (cachedImage != null && cachedImage.exists()) { // if image was cached by UIL
        sourceStream = new FileInputStream(cachedImage);
    } else { // otherwise - download image
        ImageDownloader downloader = new BaseImageDownloader(context);
        sourceStream = downloader.getStream(imageUrl, null);
    }

    if (sourceStream != null) {
        try {
            OutputStream targetStream = new FileOutputStream(fileForImage);
            try {
                IoUtils.copyStream(sourceStream, targetStream, null);
            } finally {
                targetStream.close();
            }
        } finally {
            sourceStream.close();
        }
    }


文章来源: Download Image stream from android universal image loader