如何理解Android中的ImageView Layouting?

时间:2015-11-19 11:24:05

标签: android android-layout imageview

这可能是一个基本问题,但以下行为一直伤害着我。所以我理解了轰鸣声的行为(差不多),但我不明白为什么这个行为已经为android实现了。

主题是关于一个维度大小的“wrap_content”,如果另一个维度是固定的。

这是一个例子。

enter image description here

XML代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">


    <TextView
        android:layout_width="match_parent"
        android:layout_height="20dp"
        android:layout_marginTop="10dp"
        android:gravity="center"
        android:text="WrapContent w=wc \& h=wc" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        android:src="@android:drawable/ic_delete" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="20dp"
        android:layout_marginTop="10dp"
        android:gravity="center"
        android:text="Hybrid w=200dp \& h=wc" />

    <ImageView
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        android:src="@android:drawable/ic_delete" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="20dp"
        android:layout_marginTop="10dp"
        android:gravity="center"
        android:text="Hybrid w=wc \& h=200dp" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="200dp"
        android:background="@color/colorPrimary"
        android:src="@android:drawable/ic_delete" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="20dp"
        android:layout_marginTop="10dp"
        android:gravity="center"
        android:text="Fixed  w=200dp \& h=100dp" />

    <ImageView
        android:layout_width="200dp"
        android:layout_height="100dp"
        android:background="@color/colorPrimary"
        android:src="@android:drawable/ic_delete" />
</LinearLayout>

只是基本的东西。

在no1中,它只是从自己的大小包装内容:好的 在no4中,它将内容包装到固定大小:ok 在no2 et no3中,它保持自己的尺寸为wc(!?!),并将另一个尺寸扩展到固定尺寸。感觉(对我而言,对于我今天的理解),有一种限制大小的顶部线性布局,然后拥有一个图像视图。 BREF ...

为什么会这样?这是正常的吗?这是预期的吗?它只会给我带来麻烦吗?

我知道我们可以在Measure上覆盖ImageView并定义一个精确的布局,我正在这样做,但是,在我的日常工作中,我真的需要一个“包装内容”,将可绘制内容包装到固定约束(ImageView或它的父)。不是吗?

我希望ImageView将它的内容包装成drawable,就像这样(no2和no 3)

enter image description here

0 个答案:

没有答案