1

私は非常に失望しています。「通常の画面」の 360dp に基づいたプロジェクトを完成させたところですが、Motorola Atrix で実行しようとすると驚きました。Motorola Atrix は、幅が 540 ピクセルであるため、320 dp ではなく 360 dp です。今、私は解決すべき問題を見つけるために頭を悩ませています。360dp のレイアウトを作成するにはどうすればよいですか?

私はこれらすべてを試しました:

  • 解像度/値-sw360dp
  • res/layout-sw360dp

main.xml

<?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"
    android:background="#DFEFF1">

    <Button
        android:background="#AAAA11"
        android:id="@+id/button1"
        android:layout_width="@dimen/default_width"
        android:layout_height="@dimen/default_height"
        android:text="SOME TEXT 1"         
        />


    <Button
        android:background="#FFAA11"
        android:id="@+id/button2"
        android:layout_width="@dimen/default_width"
        android:layout_height="@dimen/default_height"
        android:text="SOME TEXT 2"
        android:layout_alignParentRight="true" />
</RelativeLayout>

res/values/strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <dimen name="default_width">160dp</dimen>
    <dimen name="default_height">160dp</dimen>

</resources>

モトローラ アトリックス

モトローラ アトリックス

サムスン ギャラクシー SII

サムスン ギャラクシー SII

4

1 に答える 1

5

一般に、レイアウトを設計するときは、特定のピクセル サイズの計画を避けたいと考えています。必要に応じてピクセルに基づいてすべてのレイアウトを分離する場合、ほぼすべてのデバイスに 1 つのレイアウトを提供する必要があります (世界にはさまざまなサイズの画面を持つデバイスが非常に多くあります)。通常、いくつかの異なるサイズ カテゴリのレイアウト リソースを提供する必要があります。layout-smalllayout-normallayout-largeなど。それらを提供し、レイアウトが適切な方法で構築されている場合、さまざまなサイズのデバイスにうまくスケーリングする必要があります。

より大きなサイズのデバイスで実行すると、レイアウトに何か問題がありますか? おそらく、あなたが投稿した場合、レイアウトをピクセルサイズで区切る必要なく解決するのを手伝うことができます.

開発者向けドキュメントの複数の画面 のサポートには、アプリケーションを適切にスケーリングできるように構築する方法に関する多くの優れた情報があります。

編集:

問題を解決する 1 つの潜在的な方法は、幅に静的な dp 値を使用せず、代わりに、画面の幅を埋めるために、ボタンが (水平方向に) より多くのスペースを占有できるようにすることです。これは、layout_weight で幅を に設定して行うことができますfill_parent。今はEclipseにアクセスできないのでテストできませんが、linearlayoutなしでこの効果を得る方法も確かにあると思いますが、これが私が最初に考えた方法でした.

<?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:background="#DFEFF1">

    <LinearLayout
     android:id="@+id/buttonRow"
     android:orientation="horizontal"
     android:layout_height="@dimen/default_height"
     android:layout_width="fill_parent">


    <Button
        android:background="#AAAA11"
        android:id="@+id/button1"
        android:layout_width="0"
        android:layout_height="@dimen/default_height"
        android:text="SOME TEXT 1"         
        android:layout_weight="1"
        />


    <Button
        android:background="#FFAA11"
        android:id="@+id/button2"
        android:layout_width="0"
        android:layout_height="@dimen/default_height"
        android:text="SOME TEXT 2"
        android:layout_weight="1" />

</LinearLayout>
</RelativeLayout>
于 2012-06-19T01:01:12.520 に答える