Android: 在 ConstraintLayout 中保持全宽和未定义高度 ImageView 的比例?

Android: Keep ratio for a full-width and undefined height ImageView in a ConstraintLayout?

ConstraintLayout 中,ImageView 以这样的方式绑定到其父级:

  1. 它的左侧绑定到屏幕的左侧

  2. 它的右边绑定到屏幕的右边

  3. 其顶部绑定到小部件的底部

  4. 它的底部绑定到屏幕的底部

因此我的 ImageView 看起来是全角的,它的高度是小部件和屏幕底部之间的距离。

<ImageView
    android:id="@+id/imageView16"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:orientation="horizontal"
    android:background="@drawable/ic_background_stars"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toBottomOf="@id/linearLayout4"
    app:layout_constraintBottom_toBottomOf="parent"
    />

问题是它包含的 SVG 也是全角的,但是比例被破坏了:就高度而言,它不够大。所以SVG是扭曲的。

问题

如何以全角显示 SVG(从屏幕的左侧到右侧),并保持其比例(以便其高度足够大)?

我认为如果您的图像

可以使用app:layout_constraintDimensionRatio="your ratio"来保持纵横比

例如,如果您想要正方形,则需要相同的宽度和高度,因此请使用 - app:layout_constraintDimensionRatio="1:1"

除了上一个答案之外,您的图片未正确缩放的原因是您将其用作背景。

您的代码..

android:background="@drawable/ic_background_stars"

相反,将其用作图像资源。

app:srcCompat="@drawable/ic_background_stars"

ImageView 的默认比例类型应该可以为您完成这项工作。否则,您甚至可以尝试各种音阶类型。