无法在 Android API 上调整小于 16 的 ImageView

Can't adjust ImageView on Android API below 16

我想在我的应用程序中设置一个背景图片,它会填满所有屏幕并在需要时缩放,所以我在我的 main_layout.xml 中这样设置它:

<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:adjustViewBounds="true"
    android:id="@+id/imageView"
    android:src="@drawable/bg_iphone_6_plus" />

看起来像这样

不太好,其实我也需要这张图片调整宽度。

好的,所以这在大多数情况下都有效,并且适用于所有 API 的高 16 位,但是当我 运行 我的应用程序在 api 低 16 位时( minTargetSdk=14 ),我看到这个:

我不知道为什么会这样显示,我已经尝试过这个 tutorial,并将 ImageView 替换为 com.inthecheesefactory.thecheeselibrary.widget.AdjustableImageView

但它根本没有改变任何东西

尝试将 android:src 属性 替换为 android:background ImageView 布局。我认为这将解决您的问题。如果问题仍然存在,请告诉我。

如果你的背景图片只是这张中间有渐变的灰色图片,那么将drawable移动到android:background 到父容器。为此,您不需要额外的 ImageView

但是,如果您想将位图设置为背景并在不同的设备和方向上保持此图像的比例,您应该使用 ImageView 及其 android:scaleType,例如"centerCrop"通常 是背景的最佳选择)。