Pregunta ¿Cómo definir una forma de círculo en un archivo dibujable xml de Android?


Tengo algunos problemas para encontrar la documentación de las definiciones de formas en XML para Android. Me gustaría definir un círculo simple lleno de un color sólido en un archivo XML para incluirlo en mis archivos de diseño.

Lamentablemente, la documentación en android.com no cubre los atributos XML de las clases de Shape. Creo que debería usar un ArcShape para dibujar un círculo, pero no hay ninguna explicación sobre cómo establecer el tamaño, el color o el ángulo necesarios para hacer un círculo de un arco.


503
2017-07-06 09:40


origen


Respuestas:


Este es un círculo simple como dibujable en Android.

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">

   <solid 
       android:color="#666666"/>

   <size 
       android:width="120dp"
        android:height="120dp"/>
</shape>

1139
2017-08-25 12:24



Establecer esto como su fondo de vista

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <stroke
        android:width="1dp"
        android:color="#78d9ff"/>
</shape>

enter image description here

Para el uso de círculo sólido:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid
        android:color="#48b3ff"/>
</shape>

enter image description here

Sólido con golpe:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="#199fff"/>
    <stroke
        android:width="2dp"
        android:color="#444444"/>
</shape>

enter image description here

Nota: Para hacer que oval las formas aparecen como un círculo, en estos ejemplos, ya sea tu vista que estás usando estas formas como fondo debe ser un cuadrado o tienes que configurar el height y width propiedades de la etiqueta de forma a un valor igual.


594
2018-01-11 15:08



Código para círculo simple

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
        <solid android:color="#9F2200"/>
        <stroke android:width="2dp" android:color="#fff" />
        <size android:width="80dp" android:height="80dp"/>
</shape>

83
2017-11-25 10:01



Mire en las muestras de Android SDK. Hay varios ejemplos en el proyecto ApiDemos:

/ ApiDemos / res / dibujable /

  • black_box.xml
  • shape_5.xml
  • etc

Se verá algo así para un círculo con un relleno de degradado:

<? xml version = "1.0" encoding = "utf-8"?>
<shape xmlns: android = "http://schemas.android.com/apk/res/android" android: shape = "oval">
    <gradient android: startColor = "# FFFF0000" android: endColor = "# 80FF00FF"
            android: angle = "270" />
</ shape>


45
2017-08-11 17:32



Puedes usar VectorDrawable como a continuación :

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="200dp"
    android:height="200dp"
    android:viewportHeight="64"
    android:viewportWidth="64">

    <path
        android:fillColor="#ff00ff"
        android:pathData="M22,32
        A10,10 0 1,1 42,32
        A10,10 0 1,1 22,32 Z" />
</vector>

El xml anterior se representa como:

enter image description here


39
2017-07-29 16:17



<?xml version="1.0" encoding="utf-8"?>
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">

    <!-- fill color -->
    <solid android:color="@color/white" />

    <!-- radius -->
    <stroke
        android:width="1dp"
        android:color="@color/white" />

    <!-- corners -->
    <corners
        android:radius="2dp"/>
</shape>

18
2018-01-29 10:00



Aquí hay un simple circle_background.xml para pre-material:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <shape android:shape="oval">
            <solid android:color="@color/color_accent_dark" />
        </shape>
    </item>
    <item>
        <shape android:shape="oval">
            <solid android:color="@color/color_accent" />
        </shape>
    </item>
</selector>

Puedes usar con el atributo 'android:background="@drawable/circle_background" en la definición de diseño de tu botón


15
2018-06-09 23:28