5

私はAndroidプログラミングにまったく慣れていません(チュートリアルをいくつか行った/開発ガイドを読んだだけです)。すべての初心者と同じように、役に立たないゲームをやりたいです:-)。

現在、さまざまなビューのレイアウトに苦労しています。例と同様に、 a を拡張してSurfaceViewに入れるクラスを作成しましたFrameLayout。このあたりで、SurfaceView他の View のようなButtons&が必要TextViewsです。このようなもの:

-----------------------------------------------
| TextView | SurfaceView           | TextView |
|          |                       |          |
------------                       ------------
|          |                       | TextView |
|          |                       |          |
|          |                       ------------
|          |                       | TextView |
|          |                       |          |
|          |                       ------------
|          |                       |          |
|          |                       |          |
-----------------------------------------------
| Button                             Button   |
-----------------------------------------------

FrameLayoutand RelativeLayouts(画面の端に貼り付ける)を使用してこのようなことを行うことができましたが、オブジェクトの幅と高さの倍数にする必要があるためTextViews、のサイズをより適切に制御したいと思います。SurfaceViewその中に描いていきます。layout_widthとをいくつかの dp 値に設定しようとしましlayout_heightたが、0,0 でペイントを開始すると、まだ左上隅にTextViewあります (..)。

では、上記のようなレイアウトを実現するためのベスト プラクティスは何ですか? どのレイアウトを使用していますか?または、代わりdraw()に my の関数内でテキストを描画する必要がありますか?SurfaceView

4

1 に答える 1

6

レイアウトは、OpenGL コンテンツをボタン、ラベル、およびその他のタイプのビュー オブジェクトと組み合わせる正しい方法です。他のレイアウト内でレイアウトを組み合わせることができます...そのため、線形レイアウトまたは好みのものを組み合わせて、段階的に画面を作成できます。

たとえば、相対レイアウトを使用して、ボタン (b1、b2) と画面の残りの部分をセットアップできます。

+-----------+
|  Zone 1   |
+-----+-----+
| b1  | b2  |
+-----+-----+

次に、ゾーン 1 内で、3 つの主要な列に水平線形レイアウトを使用できます。

+----+----+----+
| c1 | c2 | c3 |
+----+----+----+

c2 の内部に SurfaceView を配置し、c1 にテキスト ラベルを配置できます。

c3 の内部には、テキスト ラベルを表示するための新しい垂直線形レイアウトがあります。

+----+
| t1 |
+----+
| t2 |
+----+
| t3 |
+----+
于 2012-10-18T15:19:03.067 に答える