6

Google が提供する Lunar Lander サンプルに似た surfaceview を使用して、単純な Android ゲームを設計しています。ハイスコ​​ア、メッセージ、メニューなどのさまざまなものを、表面ビューをバックグラウンドで画面にポップアップ表示したいと考えています。

問題は、「ポップアップ」に画像、テキストボックスなどの多くのデザイン要素を含めることです.XMLでレイアウトを作成して、必要なポップアップをデザインし、それをサーフェスビューに表示する方法はありますか?コードで個々の要素を 1 つずつ作成し、それらすべてをキャンバスにペイントする必要はありません。

画面の横からポップアップをアニメーション化したいので、XML でレイアウトを設計して、すべてのオブジェクトが相互の関係を認識し、そのレイアウトを 1 つのオブジェクトとしてアニメーション化するとよいでしょう。

それは非常に単純なことのように思えますが、それを達成する方法を見つけることができないようです。

4

2 に答える 2

6

コードまたはXMLレイアウトのいずれかで、SurfaceViewの上に要素をオーバーレイできます。

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    >
<android.view.SurfaceView
        android:id="@+id/mysurface"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
</android.view.SurfaceView>
</FrameLayout>

そしてあなたの活動において:

TextView myText = new TextView(this);
myText.setText("Something");
addContentView(myText, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

ただし、パフォーマンスの問題についてはわかりません。

于 2010-10-18T06:09:47.127 に答える
3

これを行う簡単な方法は、ポップアップ インターフェイスを別のアクティビティとして作成することです。次に、ダイアログ テーマのような透明な背景テーマをマニフェスト ファイルに指定します。

API デモの CustomDialog、Translucent、TranslucientBlur のサンプルをご覧ください。彼らはそのような活動を作成します。基になるアクティビティがサーフェスにあるという事実は、何も変わらないはずです。

于 2010-10-18T03:08:09.633 に答える