可滚动的按钮和图像列表减速

时间:2012-04-16 21:47:26

标签: android listview button imageview

我需要实现一个图像和按钮列表。我有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(Synchronise ScrollView scroll positions - android)确定滚动位置
  3. 两种实现都依赖于实际的手机而运行缓慢。 ScrollView实现通常更快,但它在Desire或Galaxy Nexus上有明显的滞后,而Desire HD上的ListView实现速度很慢。

    实施此类列表的最佳方式是哪种?您能否建议一些如何快速实现实现并与设备无关的指南?我相信在列表中有大约20个图像和按钮应该不是这些手机的问题。

1 个答案:

答案 0 :(得分:0)

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

我将列表移动到另一个活动,现在它具有可接受的速度。但切换到列表的速度较慢,当我关闭列表时,我必须重新加载surfaceview,但这没关系。