0

1つの問題で私を助けてください。最小 SDK バージョンを 3 (Android 1.5) から 4 (1.6) 以上に変更すると、dp および sp 単位を使用しても、すべてのボタンとテキストビューが複数の画面で同じサイズになります。これはなぜでしょうか?

簡単な例 (main.xml):

<?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"
>
    <Button 
        android:id="@+id/button"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:text="OK"
        android:layout_centerInParent="true"
    />
</LinearLayout>

Google Nexus 7 のスクリーンショット: http://s019.radikal.ru/i601/1312/fd/e769f6e3a690.png

Sony Ericsson Xperia Play のスクリーンショット: http://s019.radikal.ru/i600/1312/9d/6b3f580e7503.png

4

3 に答える 3

1

dimen.xml要件に従って、次のフォルダーを作成します。

  1. values
  2. values-hdpi
  3. values-ldpi
  4. values-mdpi
  5. values-sw600dp
  6. values-sw720dp-land等...

そのためのコードを作成し、必要に応じて次dimen.xmlのように指定xxxdpします。

<resources>

    <!-- Default screen margins, per the Android Design guidelines. -->
    <dimen name="button_width">300dp</dimen>
    <dimen name="button_height">300dp</dimen>

</resources>

次に、次xmlのようにファイルした後:

<?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">
    <Button 
        android:id="@+id/button"
        android:layout_width="@dimen/button_width"
        android:layout_height="@dimen/button_height"
        android:text="OK"
        android:layout_centerInParent="true" />
</LinearLayout>

プログラム的に:

これも機能します:

getResources().getDisplayMetrics().density;

これにより、次のことが得られます。

  • 0.75 - ldpi
  • 1.0 - mdpi
  • 1.5 - hdpi
  • 2.0 - xhdpi
  • 3.0 - xxhdpi
  • 4.0 - xxxhdpi

参考になりますように…

ありがとう...

于 2013-12-06T12:32:32.940 に答える
1

あなたがすべきことは、別のレイアウト ファイルを作成し、別のフォルダ ( layout-sw300dplayout-sw400dp、 などlayout-sw600dp) に配置することです。これらは、さまざまなサイズと密度の画面に表示されるレイアウトになります。

于 2013-12-06T12:10:21.520 に答える