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


Definición del estilo de origen XML de Gradient / Shape / Corners

¿Cómo puedo definir una forma de base fácilmente reutilizable (o gradiente, o esquinas) en XML?

Tengo una docena de gradientes dibujables que serán iguales que los colores de inicio y final. Tenía la esperanza de definir las cosas idénticas en otro lugar y tener un archivo XML para cada gradiente diferente que sólo se definen los colores de inicio y final. ¿Es eso posible?

Esta es la base:

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient xmlns:android="http://schemas.android.com/apk/res/android" android:type="linear" android:angle="270" android:startColor="#e1ffffff" android:endColor="#e100ff00"> <stroke android:width="1dp" android:color="#ff000000" /> <corners android:radius="4dp" /> </gradient> </shape> 

Entonces quise sobrescribir el startColor y el endColor (y quizás el radio de las esquinas también o cualquier otra característica) en el archivo XML de cada drawable.

Intenté usar el padre y los estilos, pero ninguno de ellos utiliza ninguna de las características. Por ejemplo:

 <style name="base_gradient"> <item name="android:angle">270</item> <item name="android:type">linear</item> <item name="android:startColor">#e1ffffff</item> <item name="android:endColor">#e100ff00</item> </style> 

Y entonces el dibujable se parece a:

 <gradient style="@style/base_gradient" /> 

Eso no funcionó. He intentado de manera similar poner lo anterior en su propio archivo XML y luego hacer esto por cada drawable:

 <gradient parent="@drawable/base_gradient" /> 

Eso tampoco funcionó.

¿Hay alguna forma de hacer esto?

  • Error en styles.xml en android-support-v7-mediarouter
  • ¿Hay una manera más simple / mejor de poner una frontera / contorno alrededor de mi TextView?
  • Android Material botón circular
  • Enviar blob o matriz de bytes en XML
  • Android XML dibujable degradado transparente
  • Botones para rellenar el ancho cuando se utiliza TableLayout
  • Error: Error al analizar XML: no bien formado (símbolo no válido) ...?
  • ActionBar / Barra de herramientas no se muestra en la versión de Lollipop de la aplicación
  • One Solution collect form web for “Definición del estilo de origen XML de Gradient / Shape / Corners”

    Desafortunadamente no creo que sea posible. Traté de hacer lo mismo y no pude encontrar una solución.

    Lo que yo sugeriría es poner todos sus valores en archivos xml de recursos. En mi caso elegí poner mis dimensiones en dimens.xml, & integers.xml y colours en colours.xml (aunque podrían haber sido combinados en un archivo)

    Mientras que terminé con un archivo de forma dibujable para cada color, al menos si quiero ajustar los colores o el relleno, etc Sólo tengo que editar el archivo colours.xml archivo integers.xml o dimens.xml.

    Uno de mi forma dibujable entonces parecía esto:

     <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <corners android:radius = "@dimen/radius_corner" /> <!-- end colour at top, start colour at bottom --> <gradient android:angle="@integer/gradient_angle_default" android:endColor="@color/white" android:startColor="@color/pink_pale"/> <padding android:left = "@dimen/my_padding" android:right = "@dimen/my_padding" android:bottom = "@dimen/my_padding" android:top = "@dimen/my_padding" /> </shape> 

    Enlace del archivo de recursos: http://developer.android.com/guide/topics/resources/more-resources.html

    Espero que esto ayude.

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