1

私はアプリケーションを開発しています。必要性は、図に示すようにレイアウトを作成したいということです:

レイアウト

ここでは、背景として画像を指定した相対的なレイアウトを採用しました。画像に赤い点(ボタン)がありません。

赤いボタンを画像ボタンとして固定位置に配置しました。Galaxy S2で実行すると、見た目も動作も問題ありません。

しかし、このレイアウトを LG optimus L3 E400 でテストしたとき. 赤いボタンは、設定した位置にありません。

レイアウトのコードは次のとおりです。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/background" >

    <TextView
        android:id="@+id/textview_navigationbar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/navigationbar"
        android:text="@string/string_map"
        android:gravity="center"
        android:textIsSelectable="false" />


    <RelativeLayout 
        android:layout_below="@+id/textview_navigationbar"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginTop="50sp"
        android:layout_marginBottom="50sp"
        android:background="@drawable/map">

        <ImageButton
            android:id="@+id/imagebutton_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="100dip"
            android:layout_marginLeft="50dip"
            android:background="@drawable/button_1" />

        <ImageButton
            android:id="@+id/imagebutton_2"
            android:layout_below="@+id/imagebutton_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="30dip"
            android:layout_marginLeft="6dip"
            android:background="@drawable/button_2" />        

        <ImageButton
            android:id="@+id/imagebutton_3"
            android:layout_below="@+id/imagebutton_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="1dip"
            android:layout_marginLeft="40dip"
            android:background="@drawable/button_3" />

    </RelativeLayout>

</RelativeLayout>

私のLG Optimus L3 E400では、次のようになります。

レイアウト 2

赤いボタンの位置がずれています。私は知らないし、一度も使用したことがないので、これにはマップビューを使用したくありません。

この問題から抜け出す方法を教えてください。最大解像度と画面サポートのレイアウトを作成する方法として。

4

2 に答える 2

3

最も簡単な方法は、イメージ (ビットマップ) とその上にボタンを保持するカスタム ビューを作成し、onDrawメソッドを使用してボタンを描画し、座標を分析しonTouchてタッチ イベントを作成することです。

画像の縦横比 (幅:高さ) を維持すると、スケーリングを使用してボタンを適切な場所に簡単にマッピングできます。

カスタム ビューの例のリストを次に示します。

Android 用の 2D グラフィックス/ゲーム エンジンを使用することもできAndEngineます。これにより、スケーリングが行われます。

ここを見てください:公式ウェブサイト

于 2013-05-03T10:56:39.357 に答える