0

我在 monodroid 中为我的 android 应用程序使用 android通用图像加载器。

有时我需要在 sdcard 中保存一些图像。在这种情况下,我需要在流中下载图像,然后将它们保存到 sdcard 中。

有没有办法使用这个库通过流下载图像。因为在很多情况下图像被缓存在库中?

4

1 回答 1

9

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

如果你想使用 UIL 从 SD 卡显示图像,你应该传递如下 URL: 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();
        }
    }
于 2012-12-15T18:22:21.977 回答