1

RelativeLayout複数の画面をサポートする必要があります。問題は、このアプローチは悪いのでしょうか? 基本的にボックスの幅とサイズを指定したため、複数の画面サイズ ( smalllargexlarge) に対してこれらの数値を変更する必要があり、それでも適切に収まりません。より良いアプローチはありますか?これが私のレイアウトです:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/root"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/background" >

    <RelativeLayout
        android:id="@+id/wrappedBoxes"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:gravity="center" >

        <ImageView
            android:id="@+id/imgLeft"
            android:layout_width="50dp"
            android:layout_height="60dp"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:paddingRight="7dp"
            android:scaleType="fitXY" />

        <TextView
            android:id="@+id/txtBlock1"
            android:layout_width="114dp"
            android:layout_height="71dp"
            android:layout_toRightOf="@+id/imgLeft"
            android:background="#30869C"
            android:clickable="true"
            android:gravity="bottom"
            android:padding="1dp"
            android:textColor="#fff" >
        </TextView>

        <RelativeLayout
            android:id="@+id/txtBlock2"
            android:layout_width="114dp"
            android:layout_height="71dp"
            android:layout_marginLeft="7dp"
            android:layout_toRightOf="@+id/txtBlock1"
            android:background="#30869C"
            android:clickable="true"
            android:orientation="vertical"
            android:padding="1dp" >

            <TextView
                android:id="@+id/recKF1Block"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="top"
                android:paddingTop="0dp"
                android:textColor="#fff" />

            <TextView
                android:id="@+id/recKF1BlockOutOfAmount"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/recKF1Block"
                android:text="dummy of dummy" />
        </RelativeLayout>

        <TextView
            android:id="@+id/txt9876Block"
            android:layout_width="114dp"
            android:layout_height="71dp"
            android:layout_marginLeft="7dp"
            android:layout_toRightOf="@+id/txtBlock2"
            android:clickable="true"
            android:gravity="bottom"
            android:height="71dp"
            android:padding="1dp"
            android:textColor="#fff" >
        </TextView>

        <TextView
            android:id="@+id/txt343477Block"
            android:layout_width="114dp"
            android:layout_height="71dp"
            android:layout_marginLeft="7dp"
            android:layout_toRightOf="@+id/txt9876Block"
            android:background="#30869C"
            android:gravity="top"
            android:padding="1dp"
            android:text=""
            android:textColor="#fff" >
        </TextView>

        <TextView
            android:id="@+id/txt111Block"
            android:layout_width="114dp"
            android:layout_height="71dp"
            android:layout_alignRight="@+id/txtBlock1"
            android:layout_below="@+id/txtBlock1"
            android:layout_marginTop="7dp"
            android:background="#30869C"
            android:clickable="true"
            android:gravity="bottom"
            android:padding="1dp"
            android:textColor="#fff" >
        </TextView>

        <TextView
            android:id="@+id/txtS555Sett"
            android:layout_width="114dp"
            android:layout_height="71dp"
            android:layout_alignLeft="@+id/txtBlock2"
            android:layout_below="@+id/txtBlock2"
            android:layout_marginTop="7dp"
            android:layout_toRightOf="@+id/txt111Block"
            android:background="#30869C"
            android:gravity="bottom"
            android:padding="1dp"
            android:textColor="#fff" >
        </TextView>

        <TextView
            android:id="@+id/txtMm22"
            android:layout_width="237dp"
            android:layout_height="72dp"
            android:layout_alignLeft="@+id/txt9876Block"
            android:layout_below="@+id/txt9876Block"
            android:layout_marginTop="7dp"
            android:layout_toRightOf="@+id/txtS555Sett"
            android:adjustViewBounds="true"
            android:textColor="#000" >
        </TextView>

        <TextView
            android:id="@+id/imgW999"
            android:layout_width="114dp"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/txtMm22"
            android:layout_alignTop="@+id/txt343477Block"
            android:layout_marginLeft="7dp"
            android:layout_toRightOf="@+id/txt343477Block"
            android:gravity="bottom"
            android:textColor="#fff" >
        </TextView>

        <ImageView
            android:id="@+id/imgRi8977"
            android:layout_width="50dp"
            android:layout_height="60dp"
            android:layout_centerVertical="true"
            android:layout_toRightOf="@+id/imgW999"
            android:scaleType="fitXY" />
    </RelativeLayout>

</RelativeLayout>
4

2 に答える 2

2

値をハードコーディングする代わりに、この目的のために dimen ファイルを使用してください。values-large などの値に対して異なるフォルダーを指定し、ディメンション ファイルを作成して、画面サイズに応じて特定の値を配置します。それはあなたを助けるはずです。

于 2013-03-06T09:08:59.727 に答える
0

このようなマルチスクリーンサイズのレイアウトフォルダを作成してください

layout-small、layout-large、layout-xlarge のように、レイアウト XML ファイルをこれらのフォルダーにコピーすると、ボックスの指定された幅とサイズを編集できるようになります。

于 2013-03-06T09:17:34.273 に答える