2

基本上我在线性布局之一中有 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"

对于两个线性布局。

而且你也不需要,RelativeLayout因为你只有一个ImageView在 1stLinearLayout

于 2013-02-11T04:51:21.737 回答