我的目标是在ConstraintLayout
中显示填充整个屏幕宽度的SVG背景图像。 Button
叠加在此背景图像上,这就是为什么您可以在下面的模型中看到的原因:
背景图像是包含星星的图像。它的开始和结束都将限制在根GroupView
上,以便完全填满屏幕的宽度。
问题如下:无论我是否将屏幕的底部绑定到屏幕的底部,背景图像都会失真,如下所示:
这是我编写的代码:
<ImageView
android:id="@+id/imageView16"
android:layout_width="0dp"
android:layout_height="wrap_content"
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" // "linearLayout4" is just a widget shown above, it's not an important element for this StackOverflow question
/>
<Button
android:id="@+id/button_home_share"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="24dp"
android:background="@color/colorRoyalRedLight"
android:text="TextView"
android:textAllCaps="false"
android:textColor="@color/white"
app:layout_constraintStart_toStartOf="@+id/imageView16"
app:layout_constraintEnd_toEndOf="@+id/imageView16"
app:layout_constraintTop_toTopOf="@+id/imageView16"
app:layout_constraintBottom_toBottomOf="@+id/imageView16"
/>
我如何使用我的SVG图像作为背景图像,而该图像不会出现任何扭曲,从而占据了整个屏幕的宽度?高度当然可以自适应(以保持良好的比例),但是高度(在Y和X中)不应短于按钮。
答案 0 :(得分:1)
对于ImageView
,请尝试设置android:scaleType="centerCrop"
。参见ImageView.ScaleType。
CENTER_CROP
统一缩放图像(保持图像的纵横比),以使图像的两个尺寸(宽度和高度)都等于或大于视图的相应尺寸(减去填充)。然后,图像在视图中居中。从XML使用以下语法:android:scaleType =“ centerCrop”。