我使用Android 通用的图像加载在MonoDroid的我的Android应用程序。
有一段时间我需要一些图像保存在SD卡。 在这种情况下,我需要下载的流图像,然后把它们保存到SD卡。
有没有办法通过流与此库下载图像。 因为在许多情况下,图像库中的缓存?
我使用Android 通用的图像加载在MonoDroid的我的Android应用程序。
有一段时间我需要一些图像保存在SD卡。 在这种情况下,我需要下载的流图像,然后把它们保存到SD卡。
有没有办法通过流与此库下载图像。 因为在许多情况下,图像库中的缓存?
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();
}
}