layout_weight更改图像尺寸

时间:2013-02-11 04:47:07

标签: android android-layout

基本上我在一个线性布局中使用ImageView,当我的每个布局上的权重设置得到调整大小时,布局中的ImageView也是如此。问题是 - 只有实际改变宽度的高度保持不变。

为什么这是一个问题?我有自定义视图,我需要将它放在杯子上,因此需要杯子的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>

1 个答案:

答案 0 :(得分:1)

在设置体重时设置layout_height = 0dp。它也是一种优化。

android:layout_height="0dp"

对于LinearLayouts。

此外,您不需要RelativeLayout,因为您在第一个ImageView只有一个LinearLayout