ConstraintLayout динамическая сетка изображений? - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть ConstraintLayout внутри ScrollView, и мне было интересно, как я буду динамически генерировать представления изображений внутри этого как своего рода галерея изображений.Количество изображений является переменным, и цель состоит в том, чтобы он представлял собой сетку из 4 столбцов, каждое изображение которой ограничено направляющими, расположенными с фиксированным процентом по экрану.

Сделать это вручную в представлении «Дизайн» легко,но количество изображений велико, поэтому я бы предпочел более динамичный и программный способ сделать это.Это XML, который у меня есть для примера из 5 изображений, поэтому один переходит к следующей строке.

<ImageButton
    android:id="@+id/Image"
    android:layout_width="90dp"
    android:layout_height="90dp"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    android:scaleType="fitCenter"
    android:src="@drawable/image1"
    app:layout_constraintEnd_toStartOf="@+id/guideline8"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/tabLayout" />

<ImageButton
    android:id="@+id/Image2"
    android:layout_width="90dp"
    android:layout_height="90dp"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    android:scaleType="fitCenter"
    android:src="@drawable/image2"
    app:layout_constraintEnd_toStartOf="@+id/guideline7"
    app:layout_constraintStart_toStartOf="@+id/guideline8"
    app:layout_constraintTop_toBottomOf="@+id/tabLayout" />

<ImageButton
    android:id="@+id/Image3"
    android:layout_width="90dp"
    android:layout_height="90dp"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    android:scaleType="fitCenter"
    android:src="@drawable/image3"
    app:layout_constraintEnd_toStartOf="@+id/guideline9"
    app:layout_constraintStart_toEndOf="@+id/Image2"
    app:layout_constraintTop_toBottomOf="@+id/tabLayout" />

<ImageButton
    android:id="@+id/Image4"
    android:layout_width="90dp"
    android:layout_height="90dp"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    android:scaleType="fitCenter"
    android:src="@drawable/image4"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="@+id/guideline9"
    app:layout_constraintTop_toBottomOf="@+id/tabLayout" />

<ImageButton
    android:id="@+id/Image5"
    android:layout_width="90dp"
    android:layout_height="90dp"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    android:scaleType="fitCenter"
    android:src="@drawable/aatrox"
    android:tag="266"
    app:layout_constraintEnd_toStartOf="@+id/guideline8"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/imageName" />

<TextView
    android:id="@+id/imageName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/Image1"
    android:text="A"
    app:layout_constraintEnd_toEndOf="@+id/Image1"
    app:layout_constraintStart_toStartOf="@+id/Image1"
    app:layout_constraintTop_toBottomOf="@+id/Image1" />

Example view

Это то, что он в настоящее времяПохоже, когда делать это с дизайнером.

...