Sobes.tech
Junior

Jak sprawić, aby obiekty w układzie były rozmieszczone w kole?

sobes.tech AI

Odpowiedź od AI

Aby rozmieścić obiekty w kole, można użyć ConstraintLayout z Circular positioning.

<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/center_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Centrum"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"/>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Przycisk 1"
        app:layout_constraintCircle="@+id/center_view" // ID elementu centralnego
        app:layout_constraintCircleRadius="150dp" // Promień koła
        app:layout_constraintCircleAngle="0" /> // Kąt w stopniach (0° - z prawej)

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Przycisk 2"
        app:layout_constraintCircle="@+id/center_view"
        app:layout_constraintCircleRadius="150dp"
        app:layout_constraintCircleAngle="90" /> // 90° - na dole

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Przycisk 3"
        app:layout_constraintCircle="@+id/center_view"
        app:layout_constraintCircleRadius="150dp"
        app:layout_constraintCircleAngle="180" /> // 180° - po lewej

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Przycisk 4"
        app:layout_constraintCircle="@+id/center_view"
        app:layout_constraintCircleRadius="150dp"
        app:layout_constraintCircleAngle="270" /> // 270° - na górze

</androidx.constraintlayout.widget.ConstraintLayout>

Atrybuty do pozycjonowania w kole:

Atrybut Opis
app:layout_constraintCircle ID elementu, wokół którego budowany jest okrąg.
app:layout_constraintCircleRadius Promień okręgu w dp.
app:layout_constraintCircleAngle Kąt w stopniach (0° - z prawej strony od centrum, rośnie przeciwnie do ruchu wskazówek zegara).