Android 使图像适合只需要 space

Android fitting image to only needed space

我有一张图片,上面有文字,下面有一行。我希望图像使用提供的 space 的宽度,然后高度刚好不浪费 space。当前 XML 设置为:

<LinearLayout 
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:textStyle="normal"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:text="" />
     <ImageView 
        android:id="@+id/photoStatic"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding ="5dp"
        android:layout_gravity="center"
        android:layout_weight="0"/>
    <View
        android:layout_marginTop="8dp"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="@color/grey" />

</LinearLayout>

这是最终的样子:

我想消除图像下方和上方的空白 space,以便完美调整图像大小。我尝试修改 android:layout_heightandroid:layout_width 但没有成功。

只需删除 layout_weight。我认为这就足够了,并且还使用 Space 而不是 View (android.support.v4.widget.Space)。还在使用 fill_parent?同名是match_parent。 fill_parent 不再使用了。

属性 android:adjustViewBounds="true" 应该做这件事。试试这个:

<?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="wrap_content"
android:orientation="vertical">

    <TextView
        android:id="@+id/name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:text="spam spam spam"
        android:textSize="18sp"
        android:textStyle="normal" />

    <ImageView
        android:id="@+id/photoStatic"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true" />

    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_marginTop="8dp"
        android:background="@color/grey" />

</LinearLayout>