ImageView 不以 ConstraintLayout 为中心

问题描述

无论我在做什么,我都无法将图像更多地移到左侧。它应该很好地居中,但它不是...... image

<ImageView
        android:id="@+id/grid"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:src="@drawable/back3"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/turn"
        app:srcCompat="@drawable/back3"
        android:layout_gravity="center"/>

有什么想法吗?

解决方法

如果父视图比图像宽,则需要将其添加到 ImageView:

android:scaleType="fitCenter"

或其他适当的属性值。

,

当您使用开始/结束约束将视图链接到两个点时,默认情况下它会停留在这些约束的中心。但是有能力将其位置移向结束或开始负责此的布局属性是 layout_constraintHorizontal_bias 正如@Robert 提到的,您可以删除该属性或将其设置为 0.5

<ImageView
    android:id="@+id/grid"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:src="@drawable/back3"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/turn"
    app:srcCompat="@drawable/back3"
    android:layout_gravity="center"/>

另外我建议你改用AppCompatImageView