1

ボタンのレイアウトが静的に構成されていたアプリに取り組んでいます。より広い画面 (SIII、ノート、タブレットなど) では、テーブル レイアウトはすべて同じサイズのままで、動的に「拡大」しません。これを達成するために、このコードをどのように調整できますか?

<TableLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="0dp"
    android:gravity="center_vertical"
    android:orientation="vertical" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:gravity="center_horizontal" >

        <RelativeLayout
            android:id="@+id/stoolRelative"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="15px"
            android:gravity="center_horizontal" >

            <ImageButton
                android:id="@+id/stoolmenu"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#00000000"
                android:src="@drawable/menustool" >
            </ImageButton>

            <TextView
                android:id="@+id/stoolText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/stoolmenu"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="5px"
                android:gravity="center_horizontal"
                android:text="@string/stoolmenu"
                android:textSize="11dp"
                android:textStyle="bold" >

            </TextView>
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/foodRelative"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="15px"
            android:gravity="center_horizontal" >

            <ImageButton
                android:id="@+id/foodmenu"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#00000000"
                android:src="@drawable/menufood" >
            </ImageButton>

            <TextView
                android:id="@+id/foodText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/foodmenu"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="5px"
                android:gravity="center_horizontal"
                android:text="@string/foodmenu"
                android:textSize="11dp"
                android:textStyle="bold" >

            </TextView>
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/PainRelative"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="15px" >

            <ImageButton
                android:id="@+id/painmenu"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#00000000"
                android:src="@drawable/menupain" >
            </ImageButton>

            <TextView
                android:id="@+id/painText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/painmenu"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="5px"
                android:gravity="center_horizontal"
                android:text="@string/painmenu"
                android:textSize="11dp"
                android:textStyle="bold" >

            </TextView>
        </RelativeLayout>
    </TableRow>

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="15px"
        android:gravity="center_horizontal" >

        <RelativeLayout
            android:id="@+id/moodRelative"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="15px" >

            <ImageButton
                android:id="@+id/moodmenu"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#00000000"
                android:src="@drawable/menumood" >
            </ImageButton>

            <TextView
                android:id="@+id/moodText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/moodmenu"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="5px"
                android:gravity="center_horizontal"
                android:text="@string/moodmenu"
                android:textSize="11dp"
                android:textStyle="bold" >

            </TextView>
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/medsTakeRelative"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="15px"
            android:gravity="center_horizontal" >

            <ImageButton
                android:id="@+id/medstakemenu"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#00000000"
                android:src="@drawable/menumeds" >
            </ImageButton>

            <TextView
                android:id="@+id/medsTakeText"
                android:layout_width="70px"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/medstakemenu"
                android:layout_alignRight="@+id/medstakemenu"
                android:layout_below="@+id/medstakemenu"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="5px"
                android:gravity="center_horizontal"
                android:lines="2"
                android:maxLines="2"
                android:minLines="2"
                android:singleLine="false"
                android:text="@string/medstakenmenu"
                android:textSize="11dp"
                android:textStyle="bold" >

            </TextView>
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/otherIssuesRelative"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="15px" >

            <ImageButton
                android:id="@+id/othermenu"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#00000000"
                android:src="@drawable/menuother" >
            </ImageButton>

            <TextView
                android:id="@+id/otherIssuesText"
                android:layout_width="100px"
                android:layout_height="wrap_content"
                android:layout_below="@+id/othermenu"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="5px"
                android:gravity="center_horizontal"
                android:lines="2"
                android:maxLines="2"
                android:minLines="2"
                android:singleLine="false"
                android:text="@string/otherissuesmenu"
                android:textSize="11dp"
                android:textStyle="bold" >

            </TextView>
        </RelativeLayout>
    </TableRow>

    <TableRow
        android:id="@+id/tableRow3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="15px"
        android:gravity="center_horizontal" >

        <RelativeLayout
            android:id="@+id/historyRelative"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="15px" >

            <ImageButton
                android:id="@+id/historymenu"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#00000000"
                android:src="@drawable/menuhistory" >
            </ImageButton>

            <TextView
                android:id="@+id/historyText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/historymenu"
                android:layout_centerHorizontal="true"
                android:gravity="center_horizontal"
                android:layout_marginTop="5px"
                android:text="@string/historymenu"
                android:textSize="11dp"
                android:textStyle="bold" >

            </TextView>
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/historyRelative"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="15px"
            android:gravity="center_horizontal" >

            <ImageButton
                android:id="@+id/academymenu"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#00000000"
                android:src="@drawable/menuacademy" >
            </ImageButton>

            <TextView
                android:id="@+id/academyText"
                android:layout_width="120px"
                android:layout_height="wrap_content"
                android:layout_below="@+id/academymenu"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="5px"
                android:gravity="center_horizontal"
                android:lines="2"
                android:maxLines="2"
                android:minLines="2"
                android:singleLine="false"
                android:text="@string/ibdacademymenu"
                android:textSize="11dp"
                android:textStyle="bold" >

            </TextView>
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/myPassPortRelative"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="15px"
            android:gravity="center_horizontal" >

            <ImageButton
                android:id="@+id/mypassportmenu"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#00000000"
                android:src="@drawable/menupassport" >
            </ImageButton>

            <TextView
                android:id="@+id/myPassportTextUp"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:layout_below="@+id/mypassportmenu"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="5px"
                android:gravity="center_horizontal"
                android:lines="2"
                android:maxLines="2"
                android:minLines="2"
                android:singleLine="false"
                android:text="@string/myibdpassportmenu"
                android:textSize="11dp"
                android:textStyle="bold" >

            </TextView>
            <!--
        <TextView 
        android:layout_below="@+id/myPassportTextUp"
        android:text="Passport" android:layout_height="wrap_content" 
        android:layout_width="wrap_content" android:id="@+id/myPassportTextDown" 
        ></TextView>
            -->
        </RelativeLayout>
    </TableRow>
</TableLayout>

編集:これは現在のレイアウトのスクリーンショットです

http://imgur.com/fHEFn1H

画面が広くなっても、表はそのままのサイズのままで、両側の余白が増えます。アイデア?

4

2 に答える 2

2

TableRow変更/追加ごとに

android:layout_weight="1"
android:gravity="center_vertical"

RelativeLayout変更/追加ごとに

android:layout_weight="1"
于 2013-07-17T17:16:47.600 に答える
0

レイアウト要素の配置を動的に (プログラムで) 調整する必要があります。たとえば、TextViewsa 内に2 がある場合、 aを にLinearLayout追加できます。OnGlobalLayoutListenerLinearLayout

myLinearLayout.getViewTreeObserver().addOnGlobalLayoutListener(ViewTreeObserver.OnGlobalLayoutListener)

このリスナー内で、レイアウト要素の幅と高さにアクセスできます。したがって、TextView を配置する (画面幅全体に均等に広げる) 必要がある場合は、次のようにします。

int width = myLinearLayout.getWidth();
int lMarginTextView = (width - myTextView1.getWidth() - myTextView2.getWidth()) / 3;
LinearLayout.LayoutParams paramsTV = new LinearLayout.LayoutParams(     
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
paramsTV.leftMargin = lMarginTextView;

myTextView1.setLayoutParams(paramsTV);
myTextView2.setLayoutParams(paramsTV);
于 2013-07-17T15:44:22.280 に答える