2

私は最近、Eclipseを使用してAndroidゲームを開発しました。私は本当にこれの初心者なので、私が尋ねるのが単純すぎるなら許してください。>。<

アプリケーションは、EclipseにインストールされているAndroidエミュレーターで実行され、完全に表示されます。ただし、明らかにエミュレータよりも画面が大きいSamsung Galaxyタブにインストールしようとすると、レイアウトが混乱します。ボタンの順序が正しくないなど。XMLレイアウトを使用した画面があり、スプライトを使用した単純なキャンバスもあります。エミュレーターの元のレイアウトをタブレットに保持する方法はありますか?RelativeLayout代わりに使用してみましLinearLayoutたが、それでも機能しません。

どんな助けでもいただければ幸いです。ありがとうございました!

1つのXMLファイルコードと、以下に示すエミュレーターの対応する画面。

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/MenuLayout" >

<Button android:id="@+id/btnNew"
    android:layout_width="140px"
    android:layout_height="65px"
    android:layout_marginTop="160px"
    android:background="@drawable/newgame"/>
<Button android:id="@+id/btnInst"
    android:layout_width="140px"
    android:layout_height="65px"
    android:background="@drawable/instructions" />
<Button android:id="@+id/btnCredits"
    android:layout_width="140px"
    android:layout_height="65px"
    android:background="@drawable/credits"/>
<Button android:id="@+id/btnExit"
    android:layout_width="140px"
    android:layout_height="65px"
    android:background="@drawable/exit"/> </LinearLayout>

上記のxmlに対応する画像

4

4 に答える 4

0

編集した質問とコメントに基づいて、レイアウトを相対的なものに変更する方法は次のとおりです。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     style="@style/MenuLayout"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent">

    <Button android:id="@+id/btnNew"
        android:layout_width="140dip"
        android:layout_height="65dip"
        android:layout_marginTop="160dip"
        android:background="@drawable/newgame" 
        android:layout_centerHorizontal="true" 
        android:layout_above="@+id/btnInst" />

    <Button android:id="@+id/btnInst"
        android:layout_width="140dip"
        android:layout_height="65dip"
        android:background="@drawable/instructions" 
        android:layout_centerHorizontal="true" 
        android:layout_above="@+id/btnCredits"/>

    <Button android:id="@+id/btnCredits"
        android:layout_width="140dip"
        android:layout_height="65dip"
        android:background="@drawable/credits"
        android:layout_centerHorizontal="true" 
        android:layout_above="@+id/btnExit"/>

    <Button android:id="@+id/btnExit"
        android:layout_width="140dip"
        android:layout_height="65dip"
        android:background="@drawable/exit"
        android:layout_centerHorizontal="true" 
        android:layout_alignParentBottom="true" 
        android:layout_marginBottom="25dip"/> 

</RelativeLayout>

ただし、完璧なソリューションが必要な場合は、ボタンと背景画像を3つのサイズでデザインし、それぞれのフォルダーdrawable-hdpi、drawable-mdpi、drawable-ldpiに配置する必要があります(タブレットの場合は、2.2からdrawable-xhdpiもあります!)。この記事を注意深く読み、エミュレーターで可能な限り多くの画面のレイアウトをテストします(ADT 10.0から、xmlの[グラフィックレイアウト]タブから直接、さまざまな構成のレイアウトをプレビューするのは非常に簡単です)。

また、相対レイアウトandroid:layout_marginTop="160dip"android:layout_marginBottom="25dip"はあまり役に立ちません。ボタン用に伸縮可能な木の板だけを使って、背景に9パッチの写真を試してみることをお勧めします(そのように機能するかどうかはわかりませんが)。または、メインメニューを使用して別の画像を作成し、ボタンの上に配置して、木やその他すべてのものだけを背景に保持します。

于 2011-03-02T08:43:16.873 に答える
0

他の人が述べているように、「px」の代わりに「dp」を使用する必要があります。これらはデバイスに依存しないピクセルであり、さまざまな画面解像度に合わせて拡大縮小されます。

フォルダー構造を使用してさまざまな画面解像度とサイズをサポートする方法についても、このガイドに従う必要があります。

乾杯

于 2011-03-01T16:25:42.230 に答える
0

ピクセルではなく dpi を使用する必要があります。ここに良いリソースがあります。 http://developer.android.com/guide/practices/screens_support.html

于 2011-03-01T16:07:30.300 に答える
0

異なる画面サイズに対して異なるレイアウトを提供する方が良いでしょう。ゲームを開発するときにも同じ問題があります。レイアウトを提供している可能性があるため、レイアウトを大、小、および xlarge に指定するだけです。逆に、レイアウトの場合は、hdpi、mdpi、ldpi、xdpi フォルダーなどの描画可能なフォルダーを提供する必要があり、異なるサイズの画像 58*58 を保存する必要があります。フォローする場合は 75*75,100*100 を入力してください。

于 2015-03-04T10:05:05.170 に答える