1

私はAndroid携帯の画面に描画するアプリを構築しています。SurfaceViewクラスを拡張してSurfaceViewを使用しています。これを行うと、画面にボタンを追加できなくなります。画面が真っ暗になり、何も見えなくなります。私はネット全体を検索し、可能な限りすべてを試しました。また、surfaceViewのサイズを変更したいのですが、これにより、画面の一部のみを描画し、残りの部分にボタンを配置できます。誰かが私にこれを行う別の方法を提案したり、この点でいくつかのアイデアを手伝ったりすることができますか?どうもありがとう!

4

1 に答える 1

1

サーフェスビューにボタンを追加します。

xmlレイアウトのFrameLayoutでsurfaceViewを囲みます。次に、ボタンを同じFrameLayoutに追加します。それらがサーフェスビューの下に配置されていることを確認して、その上に描画されるようにします。(それらを別のレイアウトにバンドルして、FrameLayoutに追加することをお勧めします。)

<FrameLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <SurfaceView android:id="@+id/surfaceView1" android:layout_width="wrap_content" android:layout_height="wrap_content"></SurfaceView>
    <LinearLayout android:id="@+id/linearLayout1" android:layout_width="wrap_content" android:layout_height="wrap_content">
        <Button android:text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
        <Button android:text="Button" android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
    </LinearLayout>
</FrameLayout>

サーフェスビューのサイズを変更する

LayoutParamsの代わりにFrameLayoutPramsを使用して、設定しているLaoutParamsの種類を確認する必要があります。私はそれをこのように設定する必要がありました:

    android.widget.FrameLayout.LayoutParams params = new android.widget.FrameLayout.LayoutParams(width, height);
    surface.setLayoutParams(params);

お役に立てば幸いです

于 2013-01-17T18:07:07.260 に答える