0

キャプションとして TextView オブジェクトを持つ一連の ImageButtons を使用しています。画面の幅いっぱいに画像を均一なサイズで表示したい (UI は横向きモードに強制されます)。私の XML レイアウトには次のものが含まれます。

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <ImageButton
                android:id="@+id/imageButtonHolidays"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:contentDescription="@string/holidays"
                android:gravity="center"
                android:onClick="chooseType"
                android:scaleType="fitCenter"
                android:src="@drawable/hagim" />

            <TextView
                android:id="@+id/EditTextHoliday"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:inputType="none"
                android:onClick="chooseType"
                android:background="@color/White"
                android:textColor="@color/Black"
                android:text="@string/holidays" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <ImageButton
                android:id="@+id/imageButtonPeople"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:contentDescription="@string/people"
                android:gravity="center"
                android:onClick="chooseType"
                android:scaleType="fitCenter"
                android:src="@drawable/people" />

            <TextView
                android:id="@+id/editTextPeople"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:inputType="none"
                android:onClick="chooseType"
                android:background="@color/White"
                android:textColor="@color/Black"
                android:text="@string/professions" />

        </LinearLayout>

    </LinearLayout>

私が知る限り、2 つの垂直方向の LinearLayout オブジェクトには、テキストと実際の画像オブジェクトを除いて、まったく同じパラメーターで構成されたオブジェクトが含まれています。画像オブジェクトはまったく同じサイズです。それにもかかわらず、UI には次のように表示されます。

スクリーンショット

どんな説明でも大歓迎です。

4

2 に答える 2

0

weightsこれを回避するために使用できます。両方の幅LinearLayoutsを 0dp に設定し、重みを 1 に設定する必要があります。これで、両方の子ビューが親ビューの幅の 50% ずつを占めるようになります (これはLinearLayout私が想定していることです。それ以外の場合は機能しません)。

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="vertical" >

            <ImageButton
                android:id="@+id/imageButtonHolidays"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:contentDescription="@string/holidays"
                android:gravity="center"
                android:onClick="chooseType"
                android:scaleType="fitCenter"
                android:src="@drawable/hagim" />

            <TextView
                android:id="@+id/EditTextHoliday"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:inputType="none"
                android:onClick="chooseType"
                android:background="@color/White"
                android:textColor="@color/Black"
                android:text="@string/holidays" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="vertical" >

            <ImageButton
                android:id="@+id/imageButtonPeople"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:contentDescription="@string/people"
                android:gravity="center"
                android:onClick="chooseType"
                android:scaleType="fitCenter"
                android:src="@drawable/people" />

            <TextView
                android:id="@+id/editTextPeople"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:inputType="none"
                android:onClick="chooseType"
                android:background="@color/White"
                android:textColor="@color/Black"
                android:text="@string/professions" />

        </LinearLayout>

    </LinearLayout>
于 2013-03-24T15:07:21.137 に答える
0

ImageButton の幅をハードコーディングすると、目的の効果が得られます。私が望むほどエレガントでも柔軟でもありませんが、いくつかのプラットフォームで動作するので、私はそれと一緒に暮らすことができると思います.

        <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="@dimen/chooser_bottom_margin"
            android:orientation="vertical" >

            <ImageButton
                android:id="@+id/imageButtonVegFruit"
                android:layout_width="200dp"
                android:layout_height="150dp"
                android:layout_gravity="center"
                android:contentDescription="@string/vegetables"
                android:gravity="center"
                android:onClick="chooseType"
                android:scaleType="fitCenter"
                android:src="@drawable/fruitveg" />

            <TextView
                android:id="@+id/EditTextVegFruit"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/White"
                android:gravity="center_horizontal"
                android:inputType="none"
                android:onClick="chooseType"
                android:text="@string/VegFruit"
                android:textColor="@color/Black" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="@dimen/chooser_bottom_margin"
            android:orientation="vertical" >

            <ImageButton
                android:id="@+id/imageButtonClothes"
                android:layout_width="200dp"
                android:layout_height="150dp"
                android:layout_gravity="center"
                android:contentDescription="@string/clothing"
                android:gravity="center"
                android:onClick="chooseType"
                android:scaleType="fitCenter"
                android:src="@drawable/clothes" />

            <TextView
                android:id="@+id/EditTextClothes"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/White"
                android:gravity="center_horizontal"
                android:inputType="none"
                android:onClick="chooseType"
                android:text="@string/clothing"
                android:textColor="@color/Black" />
        </LinearLayout>
    </LinearLayout>
于 2013-03-25T13:59:35.963 に答える