ImageView adjustViewBounds无法使用相对布局

时间:2015-01-20 00:09:11

标签: android android-layout android-imageview android-relativelayout

我有一个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>

ImageView in Relative Layout

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 in LinearLayout

为什么ImageView在这两种情况下的衡量标准不同?有没有办法让ImageView行为总是像在LinearLayout情况下一样(用LinearLayout包装它可以工作,但它不是一个干净的解决方案)?

2 个答案:

答案 0 :(得分:13)

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxHeight="100dp"
android:adjustViewBounds="true"

I got it there

答案 1 :(得分:0)

将imageview的宽度和高度用于match_parent

*R[1-3].txt