我有一个简单的布局,其中包含两个按钮和ConstraintLayout中包含的图像视图。图像视图显示矢量图形,并且水平位于两个按钮之间。
____________
| Button |
------------
____________
| ImageView |
------------
____________
| Button |
------------
问题是我似乎无法弄清楚如何在两个按钮之间垂直限制图像视图。
只要我将图像视图的layout_width和layout_height设置为wrap_content
,结果就会根据设备显示屏的纵横比而有所不同。我可以设置硬编码的高度和宽度值,但这似乎不是一个好主意。
是否有一些方法可以根据约束条件动态调整ImageView的大小?
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/image"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/buttonTop"
app:layout_constraintBottom_toTopOf="@id/buttonBottom"/>
这适用于高长宽比的设备,但在较小的设备上,底部和/或顶部按钮与imageView重叠。
答案 0 :(得分:1)
设置Imageview
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@id/buttonTop"
app:layout_constraintBottom_toTopOf="@id/buttonBottom"
高度将根据设备尺寸进行调整
答案 1 :(得分:0)
您应将ImageView
布局大小设置为match_constraint
。
只需将layout_width
和layout_height
设置为0dp
。这样,布局大小将达到设置的约束所允许的大小。
<ImageView
android:id="@+id/imageView"
android:layout_width="0dp"
android:layout_height="0dp"
android:src="@drawable/image"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/buttonTop"
app:layout_constraintBottom_toTopOf="@id/buttonBottom"/>
答案 2 :(得分:0)
我认为您的布局宽度应为0dp(匹配约束)。