LinearLayout的TreeView组件 - 内存不足错误

时间:2013-08-20 07:36:28

标签: android memory-management android-linearlayout out-of-memory

我通过LinearLayout base创建了一个树视图组件。但是当内部项目计数非常大时,由内存错误关闭它。 我在每个项目中只使用了3位大小的3位图。

如何使用我的组件(LinearLayout)减少内存我知道ListViewscrollingCache但我使用LinearLayout
有人可以帮忙吗? 谢谢。

1 个答案:

答案 0 :(得分:0)

ListView使用的系统只初始化用户可见的行(视图)。当一行不再可见时,它不会被破坏,但它用于膨胀下一个可见的视图的布局。使用此系统,您必须仅为可见的对象保存在内存中,即使列表中有1000个项目也是如此。

Here you can find a more accurate description of the recycle system

我想你也应该看一下this video。这是来自Google I / O的ListView课程。我发现了解ListView的工作方式非常有用。

在您的情况下,如果您不能使用ListView,我认为您应该手动实现此系统。这很难,所以我可以给你的最好的建议是尝试创建一个符合你需要的自定义ListView并使用它。

PS:方法recycle()略有不同,它用于删除对您使用该方法的Bitmap的任何引用。这样,下次GC运行时,它将能够从内存中删除Bitmap