0

我需要实现一个图像和按钮列表。我有 6 张图像作为分隔符,总共有 14 个带有自定义背景的按钮。该列表具有全屏 (800×600) 背景,分隔图像为 800×30 像素,按钮也具有相似的大小(所有按钮具有相同的背景图像)。最重要的是,我需要一个自定义滚动指示器:顶部和底部有两个闪烁的箭头。箭头应根据滚动位置显示或隐藏。

我还有其他一些 GUI 元素,包括使用 View.GONE 隐藏的 GLSurfaceView,因为列表显示在这些元素之上。

问题是,这种设置在 Galaxy Nexus 或 Desire HD 等功能相对强大的手机上运行速度太慢。

我尝试了两种不同的方法:

  1. 使用基于本教程的 ListView:http ://android.amberfog.com/?p=296
  2. 将所有按钮和图像放入一个 LinearLayout 并将其用作 ScrollView 的子项。要隐藏和显示闪烁的箭头,我通过覆盖 onScrollChanged 来确定滚动位置(同步 ScrollView 滚动位置 - android

两种实现都运行缓慢,具体取决于实际的手机。ScrollView 实现通常更快,但它在 Desire 或 Galaxy Nexus 上有明显的滞后,而 ListView 实现在 Desire HD 上很慢。

哪个是实施此类列表的最佳方式?您能否建议我一些指导方针,如何使实施快速且独立于设备?我相信列表中有大约 20 个图像和按钮对于这些手机来说应该不是问题。

4

1 回答 1

0

好的,问题似乎如下:我在同一个活动中有一个 GLSurfaceView 并且列表出现在它上面。这对于 UI 线程来说太多了,尽管列表完全与 GLSurfaceView 重叠,并且在列表出现时渲染被暂停。

我将列表移至不同的活动,现在它具有可接受的速度。但是切换到列表比较慢,当我关闭列表时,我必须重新加载表面视图,但这没关系。

于 2012-05-01T15:39:18.903 回答