我通过LinearLayout
base创建了一个树视图组件。但是当内部项目计数非常大时,由内存错误关闭它。
我在每个项目中只使用了3位大小的3位图。
如何使用我的组件(LinearLayout
)减少内存我知道ListView
有scrollingCache
但我使用LinearLayout
?
有人可以帮忙吗?
谢谢。
答案 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