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?

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.

  • Barra de herramientas superpuesta
  • Tratar de que Android LinearLayout se estire horizontal y verticalmente
  • Existe un archivo XML Layout de Android Studio pero no lo encuentro
  • Android: Configurar la altura del botón en XML en función de su ancho
  • Actualizado Android SDK y Android Studio desordenado todos mis XML: "Elemento XXX no permitido aquí"
  • Manejando espacios de nombres Xml con XmlPullParser
  • ¿Cómo obtengo el efecto de rizo para los elementos de menú en mi barra de herramientas personalizada?
  • Vista de posición debajo de otra vista en CoordinatorLayout en android
  • Se muestra Google Maps Android sólo pantalla en blanco
  • Cómo agregar etiquetas en xml en android? Y cómo guardar ese archivo xml?
  • Cómo crear gradiente como Iphone Edittext cuadro en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.