Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android: Dibujo de formas personalizadas

Quiero dibujar una forma personalizada como esta: Forma personalizada .

Una opción es hacer que cada forma en Photoshop individualmente y luego utilizarlo en la codificación, pero quiero saber que es posible dibujar esto utilizando xml?

¿Cómo debo dibujar la forma como esto? No esperes código completo, solo dame idea o apuntame en la dirección correcta.

  • Prevenir la superposición parcial de la forma
  • One Solution collect form web for “Android: Dibujo de formas personalizadas”

    Pruebe la siguiente forma drawable xml:

    <?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <!-- Colored rectangle--> <item> <shape android:shape="rectangle"> <size android:width="100dp" android:height="40dp" /> <solid android:color="#FAD55C" /> </shape> </item> <!-- This rectangle for the left side --> <!-- Its color should be the same as layout's --> <item android:right="90dp" android:left="-30dp"> <rotate android:fromDegrees="45"> <shape android:shape="rectangle"> <solid android:color="#ffffff" /> </shape> </rotate> </item> <!-- These rectangles for the right side --> <!-- Their color should be the same as layout's --> <item android:top="-40dp" android:bottom="63dp" android:right="-25dp"> <rotate android:fromDegrees="45"> <shape android:shape="rectangle"> <solid android:color="#ffffff" /> </shape> </rotate> </item> <item android:top="63dp" android:bottom="-40dp" android:right="-25dp"> <rotate android:fromDegrees="-45"> <shape android:shape="rectangle"> <solid android:color="#ffffff" /> </shape> </rotate> </item> </layer-list> 

    Así es como se ve en un fondo blanco:

    Introduzca aquí la descripción de la imagen

    Aquí hay más información sobre Shape Drawables .

    EDITAR:

    La siguiente es una pequeña explicación de cómo se hace.

    1. Colocamos un rectángulo amarillo de 100 x 40 dp. De ahora en adelante este rectángulo puede ser tratado como un contenedor para el resto de las formas. Los pensionistas del contenedor se consideran como orígenes para los pensionistas de formas que vamos a colocar dentro del contenedor. Es decir, el ajuste de top, bottom, right and left atributos top, bottom, right and left de la etiqueta de size de forma significa la distancia desde los bordes de la forma a los bordes top, bottom, right and left del contenedor (rectángulo amarillo).

    Por ejemplo, si queremos colocar un rectángulo más pequeño en el interior del amarillo con un intervalo de 10dp desde el borde del rectángulo amarillo, hemos establecido los atributos top, bottom, right and left igual a 10dp para el nuevo rectángulo (interior).

    1. Para lograr una forma de flecha para el lado derecho del rectángulo amarillo usamos dos rectángulos blancos adecuadamente movidos a la derecha y rotados. Observe que los valores del atributo de etiqueta de size pueden ser negativos, lo que significa que el borde correspondiente de la forma aparece fuera del contenedor. En el ejemplo anterior, si se establece, por ejemplo, el atributo de left a 100 dp o más, el rectángulo interior no se mostrará, porque estará detrás del tablero derecho del amarillo.

    Con respecto a la rotación, va en el sentido de las agujas del reloj para valores positivos y en sentido contrario a las agujas del reloj.

    1. Para la forma del lado izquierdo es suficiente usar sólo un rectángulo movido hacia la izquierda (parcialmente fuera del contenedor) y girado en 45 grados.

    Esperemos que esto no te confunda.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.