イメージ ビューとテキスト ボックスを含むいくつかのグリッド項目を持つメニュー画面を作成しようとしています。私の意図は、異なる画面解像度/寸法に対して同じスケールを取得することです。
例えば; 下の画像は私が作成しようとしているものです。ご覧のとおり、画面のサイズに応じて、グリッド アイテムの寸法が変化していますが、画面上で同じ比率をカバーしています。
画面の寸法を取得し、さまざまな画面サイズの各グリッド アイテムのおおよそのサイズを作成することは、大したことではありません。ただし、適切なマージンを設定し、グリッド ビューを画面の中央に配置するのは面倒です。
これを行うためのより簡単またはより実用的な方法はありますか?
grid_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:orientation="vertical" >
<ImageView
android:id="@+id/menu_item_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:contentDescription="@string/menu_item" />
<TextView
android:id="@+id/menu_item_text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_weight="8"
android:gravity="center" />
</LinearLayout>
activity_main_menu.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainMenuActivity" >
<GridView
android:id="@+id/mainGridView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_margin="20dp"
android:numColumns="2" >
</GridView>
</LinearLayout>