2013-01-08 32 views
0

嗨,新年快乐!下载图片并将它们添加到ImageViews

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

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

我知道问题是我有很多图像消耗大量的内存,所以...我的方案继续下去的方式是什么?

谢谢!

回答

2

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

+0

我需要两个图像柱(以pinterest应用程序为例或我在做什么)。你认为listview适合吗? – Chux

+0

单列滚动还是整个布局滚动为一个列表? – Wenger

+0

他们需要滚动为一个单一的列表 – Chux

0

你将不得不跟踪你已经加载的图像,并开始回收它们时,他们不在眼前。

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

+0

感谢您的回复。我会看看并告诉你一些^^ – Chux

+0

很高兴知道lrucache如何工作,但它不能解决我的问题。谢谢! – Chux

相关问题