3

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

问题是,我似乎无法摆脱图像下方的空白区域。(以浅蓝色突出显示)

我尝试了一个可行的解决方案,但它需要我明确指定图像高度,我尽量不这样做,因为来源可以是多种多样的,我需要图像灵活地放大/缩小(具有相同的纵横比)取决于在卡片宽度上。

这是屏幕截图:

在此处输入图像描述

这是代码片段:

<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图像自动环绕(不留任何空白)并且不明确指定图像高度?

4

2 回答 2

4

<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>
于 2016-08-14T18:12:43.773 回答
2

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

于 2016-08-14T18:40:24.663 回答