在 Android 上缩放图像会使图像呈现在 ImageView 边界之外

Posted

技术标签:

【中文标题】在 Android 上缩放图像会使图像呈现在 ImageView 边界之外【英文标题】:Scaling an Image on Android makes the Image render outside the ImageView boundaries 【发布时间】:2020-09-25 20:34:15 【问题描述】:

我正在尝试在 ImageView 中缩放图像,但如果图像超出视图边界,我希望图像被裁剪。 This is what it looks like. 图像只是在视图边界之外渲染。我尝试了android:scaleTypeandroid:adjustViewBounds 的所有不同形式,但它们都不能将图像保持在这些边界内。基本上我想要的最终结果是一个可以放大和缩小的图像,但是当你放大时,图像会被裁剪以适应空间。也许这是不可能的事情之一?

【问题讨论】:

您将高度和宽度指定为 wrap_contect。为此,它将采用图像的大小。您可以为此使用静态高度宽度。 问题解决了吗? 【参考方案1】:
android:layout_
android:layout_

表示视图将根据内容调整其大小。如果要裁剪图像,请指定这些,例如

android:layout_
android:layout_

【讨论】:

这并没有解决问题。我将高度和宽度设置为 40dp,但图像仍然可以超出此范围。【参考方案2】:

scaleX 和 scaleY 正在缩放图像。删除两者将解决您的问题。还要给它一个固定的高度和宽度。

编辑这些行

android:layout_
android:layout_

并删除这些行

android:scaleX="2"
android:scaleY="2"

【讨论】:

也许问题不清楚,但我希望图像被放大,但是当图像超出 ImageView 的边界时,应该裁剪图像的外部。 您可以使用更大尺寸的图像,并为您的图像提供静态宽度和高度。 好的,我编辑了我的问题,试图更清楚地传达我的问题。我希望图像能够放大和缩小,但在超出边界时会被裁剪。

以上是关于在 Android 上缩放图像会使图像呈现在 ImageView 边界之外的主要内容,如果未能解决你的问题,请参考以下文章

如何在网站中动态裁剪/缩放图像

在某些 android 设备中,图像不会在 FlatList 上呈现

使用图像无法正确缩放的绘制视图缩放:Android

Android在画布上操纵图像 - 使用触摸,移动,放大/缩小,缩放

图像无法在 Android 7.0 (API 24) 上呈现

锁定屏幕上的 Android MediaMetadata 图像已缩放