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

Resuelto Janusz asked hace 54 años • 19 respuestas

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 relleno con un color sólido en un archivo XML para incluirlo en mis archivos de diseño.

Lamentablemente, la documentación de android.com no cubre los atributos XML de las clases Shape. Creo que debería usar 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 a partir de un arco.

Janusz avatar Jan 01 '70 08:01 Janusz
Aceptado

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>
Arefin avatar Aug 25 '2012 12:08 Arefin

Establece esto como fondo de tu vista

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

ingrese la descripción de la imagen aquí

Para uso en círculo sólido:

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

ingrese la descripción de la imagen aquí

Sólido con trazo:

<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>

ingrese la descripción de la imagen aquí

Nota : Para que la ovalforma aparezca como un círculo, en estos ejemplos, su vista de que está usando esta forma como fondo debe ser un cuadrado o debe establecer las propiedades heighty widthde la etiqueta de forma en un valor igual.

M. Reza Nasirloo avatar Jan 11 '2016 15:01 M. Reza Nasirloo

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>
Ravi Makvana avatar Nov 25 '2014 10:11 Ravi Makvana

Puede utilizar VectorDrawable como se muestra 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:

ingrese la descripción de la imagen aquí

Riyas PK avatar Jul 29 '2016 16:07 Riyas PK

Busque en los ejemplos del SDK de Android. Hay varios ejemplos en el proyecto ApiDemos:

/ApiDemos/res/drawable/

  • caja_negra.xml
  • forma_5.xml
  • etc.

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

<?xml versión="1.0" codificación="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
    <gradiente android:startColor="#FFFF0000" android:endColor="#80FF00FF"
            android:ángulo="270"/>
</forma>

goosemanjack avatar Aug 11 '2011 17:08 goosemanjack