如何在android中进行图像缓存

时间:2011-03-22 10:02:31

标签: android

我有一组图片要从相应的网址下载。任何人都可以告诉如何继续缓存这些图像?请回复。

1 个答案:

答案 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}}