0

嗨,新年快乐!

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

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

我知道问题是我有很多图像消耗大量内存,所以......我的场景该怎么做?

谢谢!

4

2 回答 2

2

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

于 2013-01-08T17:59:35.743 回答
0

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

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

于 2013-01-08T17:50:28.223 回答