我有一组图片要从相应的网址下载。任何人都可以告诉如何继续缓存这些图像?请回复。
答案 0 :(得分:3)
您可以通过调用getCacheDir()
来获取内部存储缓存目录,getExternalCacheDir()
是您的应用用作存储的专用区域,任何人或任何其他应用都无法访问该区域。您还可以通过调用URL url = new URL(url);
HttpURLConnection ucon = (HttpURLConnection) url.openConnection();
Bitmap image = Bitmap.decodeStream(ucon.getInputStream);
File cacheDir = getCacheDir();
File imageFile = new File(cahceDir, "downloadedImage.png");
FileOutputStream fos = new FileOutputStream(imageFile);
image.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.close();
fos.flush();
获取外部存储(SD卡)缓存目录,在这种情况下,用户可以访问该目录。您可以在Androids Data Storage章节的开发指南中阅读更多相关信息。
在下载和保存图像方面,您可以执行以下操作:
SoftReference<Bitmap> softref = new SoftReference(image);
小心下载大图像,因为这可能会导致OOM错误(OutOfMemory),因此可能用SoftReference对象包装您的位图对象以避免此错误。即
{{1}}