我在 monodroid 中为我的 android 应用程序使用 android通用图像加载器。
有时我需要在 sdcard 中保存一些图像。在这种情况下,我需要在流中下载图像,然后将它们保存到 sdcard 中。
有没有办法使用这个库通过流下载图像。因为在很多情况下图像被缓存在库中?
我在 monodroid 中为我的 android 应用程序使用 android通用图像加载器。
有时我需要在 sdcard 中保存一些图像。在这种情况下,我需要在流中下载图像,然后将它们保存到 sdcard 中。
有没有办法使用这个库通过流下载图像。因为在很多情况下图像被缓存在库中?
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();
}
}