我用LinearLayout
库制作了一个树视图组件。但当内部项目数非常大时,android会因内存不足而关闭它。我在每个项目中只使用了3个3kb大小的位图。
如何减少组件(LinearLayout
)的内存使用我知道ListView
有scrollingCache
,但我使用LinearLayout
有人能帮忙吗
非常感谢。
ListView
使用的系统只初始化用户可见的行(视图)。当一行不再可见时,它不会被破坏,但它用于扩展下一个可见视图的布局。有了这个系统,即使列表中有1000个项目,你也必须只为可见的对象保存在内存中。
在这里你可以找到一个更准确的描述回收系统
我想你也应该看看这个视频。这是谷歌I/O上的ListView
课程。我发现了解ListView
是如何工作的非常有用。
在你的情况下,如果你不能使用ListView
,我认为你应该手动实现这个系统。这很难,所以我能给你的最好建议是尝试创建一个符合你需求的自定义ListView
并使用它
PS:方法recycle()
有点不同,它用于删除对使用该方法的Bitmap
的任何引用。这样,下次GC运行时,它将能够从内存中删除Bitmap