したがって、私の問題は単純です。XML レイアウトを使用して、複数のデバイスでのウィジェットの配置を正確に制御したいと考えています。これを行うために、複数のデバイスのサポートに関するGoogleドキュメントをよく読みました。この部分によると、WVGA854 と HVGA はどちらも「通常の画面」サイズと見なされます。したがって、理論的には、ウィジェットを WVGA854 に配置すると、HVGA の場合と同じように見えるはずです。ただし、結果のスクリーンショットはそうではありません。
ウィジェットは、WVGA854 スキンの比較的高い位置に表示されます。以下に示す XML コードは、layout-normal/ フォルダーの下に配置されています。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageButton
android:id="@+id/button1"
android:src="@drawable/icon_unlock"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="300dp"
android:text="Button" />
</RelativeLayout>
私が作成したドローアブルは適切な比率です (推奨される 3:4:6:8 )。では、なぜこのポジショニングのミスマッチが起こるのでしょうか? XML を使用して物事を配置することはまったく無益だと思い始めています。私のアプリではウィジェットを非常に正確に配置する必要があるため、このわずかな不一致でも問題になります。どうすればこれを解決できますか?
編集: 私が望むのは、上からのマージンと下からのマージンの比率がデバイス間でまったく同じになるようにウィジェットを配置することです。スクリーンショットから、この比率が WQVGA854 と HVGA で同じではないことがわかります。