在ConstraintLayout
中,ImageView
与其父级绑定的方式如下:
它的左侧绑定到屏幕的左侧
它的右侧绑定到屏幕的右侧
其顶部绑定到小部件的底部
它的底部绑定到屏幕的底部
因此,我的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(从左侧屏幕的侧面到右侧),并保持其比例(以便其高度足够大)?
答案 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的默认比例类型应为您完成工作。另外,您甚至可以尝试各种秤类型。