图像缓存大量高清图像



我正在构建一个"图片库"应用程序,将从一个网站获取约50 - 60张高清图像。该网站将更新图像列表,每周三次,所以新的图像将不得不提取和旧的图像丢弃时,应用程序启动的下一次。

什么是最好的方法来缓存这些图像和延迟加载他们不运行进入内存溢出和软引用问题?需要延迟加载,因为每个图像缩略图都有一个标题,冻结缩略图UI直到图像加载不是一个好主意。

另外,对于延迟加载图像——为每个缩略图生成一个线程并实现一个队列来处理这些线程真的是一个好的设计吗?有更简单的方法吗?

请帮忙!

感谢阅读!

您可以从Zwitscher源代码中获取PicHelper,用于在本地文件系统上获取和存储类,以及再次从这些文件中读取位图。

在主代码中,您将启动AsyncTask来获取图像(在其doInBackground()方法中)。为了防止OOME,我将要获取的图像列表放在一个"队列"中,并以串行而不是并行的方式获取它们。很多手机只有48MB或者更少的内存。

因为问题是一般性的,所以我试图帮助你。一些想法:-在一个单独的线程中加载图像-要么将它们存储为带有SD卡名称的文件,要么…每次应用程序运行时下载它们!-把它们放到GridView中。您可以使用消息处理程序(从线程到主UI线程的消息)来更新GridView-如果你决定在手机上存储图像,通过文件名识别它们,或者将名称存储在本地数据库中。

实际上我已经实现了一个GridView读取SD卡上的图像,并延迟加载图像的列表,不完全是你想做的,但它绝对是可行的,你可能可以在网上找到一些代码。

最新更新