メニューを次のように表示します。
アイコンを各グリッドの中央に常に配置したい。そのため、さまざまな画面サイズで見栄えがします。
今私のコードはこのように見えますが、画面が大きくなると見栄えが悪くなります。
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:background="@drawable/water">
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center" >
<ImageButton
android:id="@+id/imageButton_city"
android:layout_width="128dp"
android:layout_height="128dp"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="15dp"
android:layout_marginRight="15dp"
android:background="@null"
android:contentDescription="@string/city_des"
android:scaleType="fitCenter"
android:src="@drawable/city_button" />
<ImageButton
android:id="@+id/imageButton_states"
android:layout_width="128dp"
android:layout_height="128dp"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="15dp"
android:layout_marginLeft="15dp"
android:background="@null"
android:contentDescription="@string/state_des"
android:scaleType="fitCenter"
android:src="@drawable/states_button" />
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center" >
<ImageButton
android:id="@+id/imageButton_currency"
android:layout_width="128dp"
android:layout_height="128dp"
android:layout_marginRight="15dp"
android:background="@null"
android:contentDescription="@string/converter_des"
android:scaleType="fitCenter"
android:src="@drawable/currency_button" />
<ImageButton
android:id="@+id/imageButton_tip"
android:layout_width="128dp"
android:layout_height="128dp"
android:layout_marginLeft="15dp"
android:background="@null"
android:contentDescription="@string/tip_des"
android:scaleType="fitCenter"
android:src="@drawable/tip_button" />
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal|center" >
<ImageButton
android:id="@+id/imageButton_information"
android:layout_width="128dp"
android:layout_height="128dp"
android:layout_marginTop="15dp"
android:background="@null"
android:contentDescription="@string/information_des"
android:scaleType="fitCenter"
android:src="@drawable/information_button" />
</TableRow>
誰かがこれを達成する方法を教えてください。
編集:
Davidの助けを借りて、私はそれを修正しました。コードは次のようになります。
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" >
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" >
<ImageButton
android:layout_centerInParent="true"
...>
</ImageButton>
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" >
<ImageButton
android:layout_centerInParent="true"
... >
</ImageButton>
</RelativeLayout>
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" >
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" >
<ImageButton
android:layout_centerInParent="true"
... >
</ImageButton>
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" >
<ImageButton
android:layout_centerInParent="true"
... >
</ImageButton>
</RelativeLayout>
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center" >
<ImageButton
... >
</ImageButton>
</TableRow>