1

我正在尝试将StaggeredGridLayoutManager与(v22)的CardView一起使用。android.support.v7.widget这是我的项目的布局:

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    card_view:cardUseCompatPadding="true"
    card_view:cardCornerRadius="6dp"      >

    <RelativeLayout
        android:id="@+id/layout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:padding="5dip" >

    <ImageView
        android:id="@+id/photo"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:adjustViewBounds="true" />

    </RelativeLayout> 

</android.support.v7.widget.CardView>

在模拟器和设备 5.0+ 上,它可以正常工作,但在模拟器 4.xx 上,图像不会调整大小以填充项目的宽度/高度(因为有一个比例类型centerInside不适合项目的度量)。我现在无法在真正的 4.xx 设备上试用它,有谁知道这是否仅在模拟器中或什至在某些真正的 4.xx 设备中存在问题?

从文档http://developer.android.com/reference/android/widget/ImageView.html#setAdjustViewBounds(boolean )] 1

如果应用程序的目标 API 级别为 17 或更低,adjustViewBounds 将允许可绘制对象缩小视图边界,但在所有情况下都不会增长以填充可用的测量空间。

4

2 回答 2

2

此问题仅与 的行为有关android:adjustViewBounds="true",这似乎从 Android 4.3 开始能够缩放 ImageView 中的图像,不仅可以向下调整本机尺寸,还可以向上保持比例。

于 2015-04-15T08:42:04.227 回答
0

虽然很晚,但我相信这应该是批准的答案。我们必须创建自己的 ImageView 并根据可用的固定高度/宽度测量备用尺寸。@Nuuneoi 已尽力将其付诸实施。请关注这个 Github链接

于 2016-05-24T10:02:35.527 回答