Sobes.tech
Junior

¿Cómo hacer que los objetos en el diseño se dispongan en círculo?

sobes.tech AI

Respuesta de la IA

Para distribuir objetos en un círculo, puedes usar ConstraintLayout con 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="Centro"
        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="Botón 1"
        app:layout_constraintCircle="@+id/center_view" // ID del elemento central
        app:layout_constraintCircleRadius="150dp" // Radio del círculo
        app:layout_constraintCircleAngle="0" /> // Ángulo en grados (0° - a la derecha)

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Botón 2"
        app:layout_constraintCircle="@+id/center_view"
        app:layout_constraintCircleRadius="150dp"
        app:layout_constraintCircleAngle="90" /> // 90° - abajo

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Botón 3"
        app:layout_constraintCircle="@+id/center_view"
        app:layout_constraintCircleRadius="150dp"
        app:layout_constraintCircleAngle="180" /> // 180° - a la izquierda

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

</androidx.constraintlayout.widget.ConstraintLayout>

Atributos para la posición circular:

Atributo Descripción
app:layout_constraintCircle ID del elemento alrededor del cual se construye el círculo.
app:layout_constraintCircleRadius Radio del círculo en dp.
app:layout_constraintCircleAngle Ángulo en grados (0° - a la derecha del centro, aumenta en sentido antihorario).