我需要将按钮(绿色)放在图像(红色)上显示的位置。 在纵向模式下,所有类型的手机屏幕都应该相同。
这是屏幕的中间,但是高度根据屏幕尺寸而变化。这些是按钮的属性。 android:layout_marginBottom
并非适用于所有屏幕尺寸。
按钮
<ImageView
android:id="@+id/circle_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="100dp"
app:srcCompat="@drawable/circle" />
不规则形状
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:adjustViewBounds="true"
android:src="@drawable/irregular_shape" />
想要的结果
答案 0 :(得分:0)
解决此问题的方法之一是将不规则形状分成两个形状,然后使用ConstraintLayout将按钮放置在形状之间,如下所示:
代码将是这样的:
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/shape2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/shape_bank_bill_dotted_transparent"
app:layout_constraintBottom_toTopOf="@+id/shape1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@+id/shape1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<ImageView
android:id="@+id/shape1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/shape_bank_bill_dotted_transparent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</android.support.constraint.ConstraintLayout>