【发布时间】:2011-03-22 20:08:41
【问题描述】:
我有一组要从其相应网址下载的图像。谁能告诉如何继续缓存这些图像?请回复。
【问题讨论】:
标签: android
我有一组要从其相应网址下载的图像。谁能告诉如何继续缓存这些图像?请回复。
【问题讨论】:
标签: android
您可以通过调用getCacheDir() 获取内部存储缓存目录,该目录是您的应用用作存储的专属区域,任何人或任何其他应用都无法访问该目录。您还可以通过调用getExternalCacheDir() 获取外部存储(sd 卡)缓存目录,在这种情况下,用户可以访问该目录。您可以在 Androids Data Storage 开发指南的章节中阅读更多相关信息。
在下载和保存图像方面,您可以执行以下操作:
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();
下载大图像时要小心,因为这可能会导致 OOM 错误 (OutOfMemory),因此您可以用 SoftReference 对象包装您的位图对象以避免此错误。即
SoftReference<Bitmap> softref = new SoftReference(image);
【讨论】: