下载图像并将它们放入ImageViews

时间:2013-01-08 17:39:34

标签: android android-asynctask android-imageview

嗨,新年快乐!

我正在尝试从互联网下载图像并将它们放入不同的ImageView中。 ImageViews是在用户滚动时动态创建的。当用户到达滚动视图的底部时,我会加载10个图像。

图像加载正常,但是当我有很多图像时,我得到了一个java.lang.OutOfMemoryError。

我知道问题是我有很多图像消耗了大量内存,所以...我的方案有什么用?

谢谢!

2 个答案:

答案 0 :(得分:2)

尝试使用ListView而不是ScrollView。然后你可以使用像Universal Image Loader这样的延迟加载技术。 ListView利用视图回收,这将更容易在您的内存,您还可以使用图像加载器缓存图像。该库还有一些内存管理选项。

答案 1 :(得分:0)

您将不得不跟踪已加载的图像,并在它们不在视野时开始回收它们。

您可能会发现LruCache是一个有价值的工具。在IO12“Doing More With Less: Being a Good Android Citizen”上进行了很好的讨论,讨论了很多内存问题,并讨论了如何在4分钟左右开始使用LruCache。