我有一个ImageView
,并将其layout_height
设置为“100dp”,将其layout_width设置为“wrap_content”。
使用的绘图具有更大的实际尺寸,即130dp(宽度)X 215dp(高度)。
当ImageView
置于LinearLayout
内时,如果我将adjustViewBounds
设置为true,则会获得根据drawable的宽高比和layout_width测量的宽度。
但是,当放置在RelativeLayout
内时,ImageView
与drawable(130dp)的宽度相同,无论adjustViewBounds设置如何。
在这两种情况下,图像都会呈现正确而不会失真,但ImageView的界限是不同的。
RelativeLayout:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/background_light">
<ImageView
android:layout_width="wrap_content"
android:layout_height="100dp"
android:adjustViewBounds="true"
android:src="@drawable/phone_orange"
android:contentDescription="@null" />
</RelativeLayout>
LinearLayout:
<?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:background="@android:color/background_light"
android:orientation="vertical" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="100dp"
android:adjustViewBounds="true"
android:contentDescription="@null"
android:src="@drawable/phone_orange" />
</LinearLayout>
为什么ImageView
在这两种情况下的衡量标准不同?有没有办法让ImageView
行为总是像在LinearLayout情况下一样(用LinearLayout包装它可以工作,但它不是一个干净的解决方案)?
答案 0 :(得分:13)
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxHeight="100dp"
android:adjustViewBounds="true"
答案 1 :(得分:0)
将imageview的宽度和高度用于match_parent
*R[1-3].txt