こんにちは、私はアンドロイドでアプリを開発していscreen-width
ます。ランドスケープモードで塗りつぶす画像が必要なレイアウトがいくつかあります。その上、特定の場所にいくつかのボタンが必要です。
私はscrollview
(画面の幅を埋めると画像が高さに収まらないため)、相対的なレイアウトを使用しました。
その相対的なレイアウトに、imageview
と ボタンを配置しました。画像は幅を埋め、高さのコンテンツをラップします。ボタンは、相対レイアウト内で左マージンと上マージンを設定することによって配置されます。
テストした電話ではすべてがうまく見えますが、別のデバイス (他の画面サイズと密度) でテストすると、すべてのボタンが間違った場所にあり、十分な大きさではありません。
すべての比率が同じになるように、これを変更するにはどうすればよいですか? ボタンは、画像と比較して、正確に同じ位置にある必要があり、同じサイズである必要があります。
私のコード:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/svCentralAmerica"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true" >
<RelativeLayout
android:id="@+id/rlCentralAmerica"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/ivCentralAmerica"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:adjustViewBounds="true"
android:src="@drawable/mapcentralamerica" />
<Button
android:id="@+id/mexu"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="16dp"
android:layout_marginTop="33dp"
android:background="@drawable/usa_y"
android:onClick="onCountryClick"
android:paddingTop="3dp"
android:scaleType="fitCenter"
android:tag="1;U"
android:text="2"
android:textColor="@color/Black"
android:textSize="15sp"
android:textStyle="bold" />
<Button
android:id="@+id/mexr"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_alignTop="@id/mexu"
android:layout_marginLeft="4dp"
android:layout_toRightOf="@id/mexu"
android:background="@drawable/russia_n"
android:onClick="onCountryClick"
android:paddingTop="18dp"
android:scaleType="fitCenter"
android:tag="1;R"
android:text="3"
android:textColor="@color/Red"
android:textSize="15sp"
android:textStyle="bold" />
</RelativeLayout>
</ScrollView>