基本上我在一个线性布局中使用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>
答案 0 :(得分:1)
在设置体重时设置layout_height = 0dp
。它也是一种优化。
android:layout_height="0dp"
对于LinearLayouts。
此外,您不需要RelativeLayout
,因为您在第一个ImageView
只有一个LinearLayout