在两个视图之间放置imageView并动态调整其大小以适合?

时间:2019-05-27 11:26:35

标签: android

我有一个简单的布局,其中包含两个按钮和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重叠。

3 个答案:

答案 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_widthlayout_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(匹配约束)。