1

イメージ ビューとテキスト ボックスを含むいくつかのグリッド項目を持つメニュー画面を作成しようとしています。私の意図は、異なる画面解像度/寸法に対して同じスケールを取得することです。

例えば; 下の画像は私が作成しようとしているものです。ご覧のとおり、画面のサイズに応じて、グリッド アイテムの寸法が変化していますが、画面上で同じ比率をカバーしています。

ここに画像の説明を入力

画面の寸法を取得し、さまざまな画面サイズの各グリッド アイテムのおおよそのサイズを作成することは、大したことではありません。ただし、適切なマージンを設定し、グリッド ビューを画面の中央に配置するのは面倒です。

これを行うためのより簡単またはより実用的な方法はありますか?

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>
4

1 に答える 1

0

最も簡単な方法は、別dimens.xmlvaluesフォルダーを作成することです。

手順:

  1. dimens.xml値、values-sw600dp、values-sw720dp などの特定の解像度の値フォルダーに作成します。
  2. ImageView および任意のビューの寸法値を定義します。(ディメンション変数名は、すべての dimens.xml ファイルで同じでなければなりません)
  3. 必要な場所でこれらを参照するだけdimens.xmlで、画面のサイズと密度に基づいて寸法値が取得されます。
于 2013-10-01T11:22:11.737 に答える