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

时间:2019-04-07 19:07:09

标签: android android-imageview android-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(从左侧屏幕的侧面到右侧),并保持其比例(以便其高度足够大)?

2 个答案:

答案 0 :(得分:1)

我认为您可以使用app:layout_constraintDimensionRatio="your ratio"来保持图像的长宽比

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

答案 1 :(得分:1)

除了最后一个答案外,图像未正确缩放的原因还在于您将其用作背景。

您的代码。

android:background="@drawable/ic_background_stars"

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

app:srcCompat="@drawable/ic_background_stars"

并且ImageView的默认比例类型应为您完成工作。另外,您甚至可以尝试各种秤类型。