如何摆脱 CardView 中 ImageView 周围的空白

How to get rid of blank spaces around an ImageView inside a CardView

在屏幕截图下方,我使用 ImageView 将图像插入到 CardView 中。

问题是,我好像没法去掉图片下面的空白space。 (用浅蓝色突出显示)

我试过a solution that works,但是需要我明确指定图片高度,我尽量不指定,因为来源可以是多种多样的,我需要图片灵活缩放up/down(具有相同的纵横比)取决于卡片宽度。

截图如下:

这是代码片段:

<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    card_view:cardCornerRadius="2dp"
    card_view:cardElevation="2dp">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="7dp">
        <TextView
            android:id="@+id/caption_text"
            android:text="Hello World!"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:scaleType="fitStart"
            android:layout_below="@id/caption_text"
            android:src="@drawable/food"/>
    </RelativeLayout>
</android.support.v7.widget.CardView>

那么,有没有办法让 CardView 自动环绕图像(不留空 space)并且不明确指定图像高度?

<RelativeLayout> 高度更改为 wrap_content。目前,它在高度上有循环依赖。

[编辑]

我们需要设置 属性 android:adjustViewBounds="true" 以使图像随源缩放。默认为false

<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    card_view:cardCornerRadius="2dp"
    card_view:cardElevation="2dp">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="7dp">
        <TextView
            android:id="@+id/caption_text"
            android:text="Hello World!"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:adjustViewBounds="true"
            android:layout_below="@id/caption_text"
            android:src="@drawable/food"/>
    </RelativeLayout>
</android.support.v7.widget.CardView>

尝试将 scaleType 更改为 android:scaleType="centerCrop",或其他一些 scaleType。
看这里:
https://developer.android.com/reference/android/widget/ImageView.ScaleType.html