Как добавить точку на определенную позицию ImageView в Contraintlayout - PullRequest
0 голосов
/ 11 января 2019

Мне нравится добавлять кнопку, которая соединяется линией с зеленой точкой в ​​определенной позиции ImageView в ConstraintLayout. Но конкретная позиция зеленой точки не может быть исправлена ​​при масштабировании изображения на другом экране или повороте. Пожалуйста, обратитесь к фото.

В настоящее время я пытаюсь добавить зеленую точку (вид с нарисованным фоном). И управляйте их положением с помощью constraintHorizont_bias и constraintVertical_bias. Но это не работает нормально.

app:layout_constraintHorizontal_bias="0.59"
app:layout_constraintVertical_bias="0.788"

Коды указаны ниже:

   <android.support.constraint.ConstraintLayout
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_marginBottom="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    app:layout_constraintBottom_toTopOf="@+id/button_oobe_1p7_ok"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/textView_oobe_1p7_title2"
    app:layout_constraintVertical_bias="0.0">

    <ImageView
        android:id="@+id/imageView4"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@mipmap/icon_body_w" />

    <View
        android:id="@+id/view"
        android:layout_width="3dp"
        android:layout_height="3dp"
        android:background="@drawable/icon_bodypart_dot_selected"
        app:layout_constraintBottom_toBottomOf="@+id/imageView4"
        app:layout_constraintEnd_toEndOf="@+id/imageView4"
        app:layout_constraintHorizontal_bias="0.561"
        app:layout_constraintStart_toStartOf="@+id/imageView4"
        app:layout_constraintTop_toTopOf="@+id/imageView4"
        app:layout_constraintVertical_bias="0.501" />

    <View
        android:id="@+id/view2"
        android:layout_width="3dp"
        android:layout_height="3dp"
        android:background="@drawable/icon_bodypart_dot_selected"
        app:layout_constraintBottom_toBottomOf="@+id/imageView4"
        app:layout_constraintEnd_toEndOf="@+id/imageView4"
        app:layout_constraintStart_toStartOf="@+id/imageView4"
        app:layout_constraintTop_toTopOf="@+id/imageView4"
        app:layout_constraintVertical_bias="0.095" />


    <View
        android:id="@+id/view3"
        android:layout_width="3dp"
        android:layout_height="3dp"
        android:background="@drawable/icon_bodypart_dot_selected"
        app:layout_constraintBottom_toBottomOf="@+id/imageView4"
        app:layout_constraintEnd_toEndOf="@+id/imageView4"
        app:layout_constraintHorizontal_bias="0.59"
        app:layout_constraintStart_toStartOf="@+id/imageView4"
        app:layout_constraintTop_toTopOf="@+id/imageView4"
        app:layout_constraintVertical_bias="0.788" />

</android.support.constraint.ConstraintLayout>

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Спасибо за все комментарии.

Я обнаружил, что мне просто нужно добавить constraintDimensionRatio, и тогда ImageView будет масштабироваться с коэффициентом, поэтому app: layout_constraintHorizont_bias и app: layout_constraintVertical_bias будут работать нормально!

app:layout_constraintDimensionRatio="1:2.215"

полных кодов

<ImageView
        android:id="@+id/imageView_body"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintDimensionRatio="1:2.215"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@mipmap/icon_body_w" />
0 голосов
/ 11 января 2019

используйте guideline-s (в данном случае горизонтальный) в центре экрана. таким образом вы можете прикрепить виджет туда

...