2

基本的に、線形レイアウトの 1 つに ImageView があります。各レイアウトに重みが設定されていると、サイズが変更されます。レイアウトの ImageView も同様です。問題は - 実際に幅を変更する高さだけが同じままです。

なぜそれが問題なのですか?customView があり、カップに配置する必要があるため、カップの x、y 座標とサイズ (幅と高さ) が必要です。現在、さまざまな画面サイズでさまざまな幅を取得しています。

レイアウト コード:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="3"
        android:orientation="horizontal" >

        <RelativeLayout
            android:id="@+id/rlmainContainer"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <ImageView
                android:id="@+id/ivCup"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/cup1_r" />
        </RelativeLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1" >
    </LinearLayout>

</LinearLayout>

Archie.bpgc ソリューション (layout_height="0dp" を設定) は役に立ちません。さらにいくつかの画像を設定すると、それらはすべて不均等な幅になります。

<?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:orientation="vertical" >

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



            <ImageView
                android:id="@+id/ivCup"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/cup1_r" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <ImageView
                android:id="@+id/ivCup"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/cup1_r" />

    </LinearLayout>

        <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <ImageView
            android:id="@+id/ivCup"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/cup1_r" />

    </LinearLayout>

        <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <ImageView
                android:id="@+id/ivCup"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/cup1_r" />

    </LinearLayout>    

</LinearLayout>
4

1 に答える 1

2

layout_height = 0dp重さを合わせながら作ってください。その最適化も。

android:layout_height="0dp"

両方の LinearLayouts に対して。

また、1st には 1RelativeLayoutつしかないため、the は必要ありません。ImageViewLinearLayout

于 2013-02-11T04:51:21.737 に答える