【发布时间】:2013-02-14 04:32:00
【问题描述】:
我想知道 Android 在将视图加载到布局中以及它们在屏幕上显示和不显示时如何管理内存。
基本上,我正在制作一个应用程序,该应用程序需要一个非常长的页面,其中包含位图和文本 - 类似于网页。我知道我应该使用 GridView 和 ListView 等标准视图来处理大量视图和图像,但这是一个小众应用程序。 (设计一成不变)
假设我有这个布局
<ScrollView>
<LinearLayout>
1000 ImageViews vertically stacked inside here.
</LinearLayout>
</ScrollView>
加载 ScrollView 时,并非所有 ImageView 都适合屏幕 - 不在屏幕上的 ImageView 位图是否仍加载到内存中?如果不是,当它们被滚动到视图中时,它们会从内存中移除?
注意:我知道 GridViews / ListViews 是为此目的而设计的,但我的应用程序的特殊设计无法容纳这些视图。
可能的解决方案: 扩展 gridview 以使其具有固定高度并且在它所在的 ScrollView 到达底部之前不会滚动。即:
<ScrollView>
<LinearLayout>
Lots of text and a few images.
<GridView> <-- attach listener so that touch events are
ignored until at bottom of scroll view -->
1000s of ImageViews
</GridView>
</LinearLayout>
</ScrollView>
【问题讨论】:
标签: android performance memory gridview