Android: 在 ConstraintLayout 中保持全宽和未定义高度 ImageView 的比例?
Android: Keep ratio for a full-width and undefined height ImageView in a ConstraintLayout?
在 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(从屏幕的左侧到右侧),并保持其比例(以便其高度足够大)?
我认为如果您的图像
可以使用app:layout_constraintDimensionRatio="your ratio"
来保持纵横比
例如,如果您想要正方形,则需要相同的宽度和高度,因此请使用 - app:layout_constraintDimensionRatio="1:1"
除了上一个答案之外,您的图片未正确缩放的原因是您将其用作背景。
您的代码..
android:background="@drawable/ic_background_stars"
相反,将其用作图像资源。
app:srcCompat="@drawable/ic_background_stars"
ImageView 的默认比例类型应该可以为您完成这项工作。否则,您甚至可以尝试各种音阶类型。
在 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(从屏幕的左侧到右侧),并保持其比例(以便其高度足够大)?
我认为如果您的图像
可以使用app:layout_constraintDimensionRatio="your ratio"
来保持纵横比
例如,如果您想要正方形,则需要相同的宽度和高度,因此请使用 - app:layout_constraintDimensionRatio="1:1"
除了上一个答案之外,您的图片未正确缩放的原因是您将其用作背景。
您的代码..
android:background="@drawable/ic_background_stars"
相反,将其用作图像资源。
app:srcCompat="@drawable/ic_background_stars"
ImageView 的默认比例类型应该可以为您完成这项工作。否则,您甚至可以尝试各种音阶类型。