0

画像とボタンのリストを実装する必要があります。セパレータとして機能する6つの画像と、カスタム背景の合計14のボタンがあります。リストにはフルスクリーン(800×600)の背景があり、セパレーター画像は800×30ピクセルで、ボタンも同様のサイズです(すべてのボタンの背景画像は同じです)。これに加えて、カスタムスクロールインジケーターが必要です。上下に2つの点滅する矢印があります。矢印は、スクロール位置に応じて表示または非表示にする必要があります。

リストがそれらの上に表示されるので、View.GONEを使用して非表示にされたGLSurfaceViewを含む他のいくつかのGUI要素があります。

問題は、GalaxyNexusやDesireHDなどの比較的強力な携帯電話ではこのセットアップの実行が遅すぎることです。

私は2つの異なるアプローチを試しました:

  1. このチュートリアルに基づくListViewの使用:http ://android.amberfog.com/?p = 296
  2. すべてのボタンと画像を1つのLinearLayoutに配置し、それをScrollViewの子として使用します。点滅している矢印を非表示にして表示するには、onScrollChangedをオーバーライドしてスクロール位置を決定します(ScrollViewのスクロール位置を同期します-android )

実際の受話器によっては、両方の実装の実行が遅くなります。ScrollViewの実装は通常は高速ですが、DesireまたはGalaxy Nexusでは顕著な遅延があり、DesireHDではListViewの実装が低速です。

そのようなリストを実装するための最良の方法はどれですか?実装を高速にし、デバイスに依存しないようにするためのガイドラインを教えてください。リストに約20個の画像とボタンがあることは、これらの携帯電話にとって問題にはならないはずです。

4

1 に答える 1

0

問題は次のようです。同じアクティビティにGLSurfaceViewがあり、その上にリストが表示されました。これはUIスレッドには多すぎましたが、リストはGLSurfaceViewと完全にオーバーラップし、リストが表示されたときにレンダリングが一時停止されました。

リストを別のアクティビティに移動しましたが、許容できる速度になりました。ただし、リストへの切り替えは遅く、リストを閉じるときにサーフェスビューをリロードする必要がありますが、それで問題ありません。

于 2012-05-01T15:39:18.903 に答える