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

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

【问题讨论】:

  • 您将高度和宽度指定为 wrap_contect。为此,它将采用图像的大小。您可以为此使用静态高度宽度。
  • 问题解决了吗?

标签: android android-studio android-layout android-imageview android-view


【解决方案1】:
android:layout_width="wrap_content"
android:layout_height="wrap_content"

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

android:layout_width="40dp"
android:layout_height="40dp"

【讨论】:

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

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

编辑这些行

android:layout_width="50dp"
android:layout_height="50dp"

并删除这些行

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

【讨论】:

  • 也许问题不清楚,但我希望图像被放大,但是当图像超出 ImageView 的边界时,应该裁剪图像的外部。
  • 您可以使用更大尺寸的图像,并为您的图像提供静态宽度和高度。
  • 好的,我编辑了我的问题,试图更清楚地传达我的问题。我希望图像能够放大和缩小,但在超出边界时会被裁剪。
猜你喜欢
  • 2018-05-10
  • 2021-04-07
  • 1970-01-01
  • 2011-07-04
  • 2020-06-18
  • 1970-01-01
  • 2018-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多