0

私は Android プログラミングに非常に慣れていないので、これはおそらくかなり基本的なものです。いくつかのボタンを備えた xml レイアウトがあります。JetBoy デモで提供されたモデルに従おうとしているので、SurfaceView を拡張するレイアウトにビューを追加しています。この新しいビューを xml レイアウトに配置すると、空白の画面が表示されます。

役立つ場合は、XML レイアウトを次に示します。gameview 要素は、画面が空白になる原因です

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:alwaysDrawnWithCache="true">
 <game.test.gameEngine
      android:id="@+id/gameView"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"/>
<Button android:text="Easy" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/EasyButton"></Button>
<Button android:text="Medium" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/MedButton"></Button>
<Button android:text="Hard" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/HardButton"></Button>
<DatePicker android:id="@+id/DatePicker01" android:layout_width="wrap_content" android:layout_height="wrap_content"></DatePicker><Button android:id="@+id/Button04" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Exit"></Button>


</LinearLayout>
4

2 に答える 2

2

game.test.gameEngine とは? View クラスを拡張しますか? もしそうなら、それは画面全体を占めています。幅と高さの両方が「fill_parent」に設定されています。これは、ボタンと日付ピッカーが画面から外れていることを意味します。ボタンをゲーム エンジン ビューの上に表示する場合は、ボタンをゲーム エンジンの子として設定するか、高さと幅をボタン用のスペースを残す値に設定する必要があります。 .

ビューの埋め込みと配置は習得が難しく複雑になる可能性があるため、Google がサイトに投稿したチュートリアルを閲覧するだけでなく、あなたが行っていることに似たコード例を探すことをお勧めします。

于 2010-06-05T22:18:23.963 に答える
1

ボタンなどの他のものを上に置いてメインゲームビューを表示する場合は、相対レイアウトを調べることを強くお勧めします。私はGLSurfaceViewをこのように実行しましたが、非常にうまく機能します。

相対レイアウトの一般的な考え方は、レイアウトパラメータが指定されていない場合、指定された各ビューは左上に描画されるというものです。ただし、親のどこか、または別のビューの隣(左/右、または上/下)に配置するように指示された場合は、表示される場所を制御できます。

リストされた新しいビューはそれぞれ他のビューの上に表示されるので(他の方法で整列されていない場合)、最初にメインサーフェスのゲームビューをリストし、その後にボタンをリストすることにも注意してください。

于 2010-06-06T01:51:05.637 に答える