0

我按基础制作了一个树视图组件LinearLayout。但是当内部项目计数非常大时,android会因内存不足错误而关闭它。我在每个项目中只使用了 3 个 3kb 大小的位图。

如何减少使用LinearLayout我知道但我使用ListView的组件 () 的内存? 任何人都可以帮忙吗? 谢谢你。scrollingCacheLinearLayout

4

1 回答 1

0

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

在这里您可以找到更准确的回收系统描述

我想你也应该看看这个视频ListView这是Google I/O上的一个教训。我发现了解其ListView工作原理非常有用。

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

PS:方法recycle()有点不同,它用于删除Bitmap对您正在使用该方法的任何引用。这样,下次 GC 运行时,就可以从内存中删除Bitmap

于 2013-08-20T08:15:37.483 回答