ConstraintLayout устанавливает процентное отношение к ширине и высоте просмотра изображения в элементе RecyclerView - PullRequest
0 голосов
/ 30 апреля 2020

Когда у нас есть recyclerView с изображениями, я хочу, чтобы изображение (из которого я не знаю его размеров) имело максимальную ширину и максимальную высоту в процентах от экрана

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/img_rcv_msg_image"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_
        app:layout_constraintBottom_toTopOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/img_guideline2"
        app:layout_constraintHorizontal_bias="0.0"
        android:scaleType="centerInside"
        android:background="@drawable/image_received_placeholder"
        app:layout_constraintStart_toStartOf="@+id/guideline6"
        app:layout_constraintTop_toBottomOf="parent"
        app:srcCompat="@android:drawable/ic_menu_report_image"
        tools:ignore="ContentDescription" />

<androidx.constraintlayout.widget.Guideline
        android:id="@+id/img_guideline2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.75" />

<androidx.constraintlayout.widget.Guideline
        android:id="@+id/guideline6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_begin="8dp" />
</androidx.constraintlayout.widget.ConstraintLayout>

Так что я ограничил ширину между двумя указателями в горизонтальном направлении. Как я могу сделать это также по вертикали?

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

В этом случае вы можете теперь ширину, из-за руководящих принципов, но вы не можете сделать то же самое для высоты, потому что вы не можете знать, будет ли высота экрана пропорциональна на каждом устройстве.

Таким образом, вы Чтобы сохранить соотношение между шириной и высотой, используйте:

app:layout_constraintDimensionRatio="1:1"

Играйте с пропорцией 1:1, и тогда вы сможете изменить ее и масштабировать до размера экрана. соответственно.

0 голосов
/ 30 апреля 2020

попробуй app:layout_constraintHeight_percent="0.2" или app:layout_constraintDimensionRatio="1:1"

...