2011-07-11 23 views
14

¿Cómo puedo hacer este tipo de degradado dibujable con XML?Cómo hacer un doble degradado con XML (como el iphone)

Double gradient image

puedo hacer un simple gradiente de color de la A a la B, pero de color que no sé cómo combinar dos gradientes en la misma estirable.

+1

posible duplicado de [formas multi-gradiente] (http://stackoverflow.com/questions/4381033/multi-gradient-shapes) – grunk

+0

hecho esto, gracias por lo que sugiere que – grunk

Respuesta

12

finalmente he encontrado una solución con una capa de lista que es lo suficientemente bueno para mí:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- First part is a gradient --> 
    <item android:left="0dp" android:right="0dp"> 
     <shape android:shape="rectangle"> 

      <gradient android:angle="-90" android:startColor="#9dcbf6" 
       android:endColor="#177ee6" /> 

     </shape> 
    </item> 
    <!-- Second part is plain color. Slightly transparent --> 
    <item android:top="1sp" android:bottom="20sp" > 
     <shape android:shape="rectangle"> 
      <solid android:color="#10ffffff"/> 
     </shape> 

    </item> 
</layer-list> 

El medio se establece en 20 sp porque el recipiente tiene una altura 40sp, pero se puede ajustar a su voluntad mediante la edición: android:bottom="20sp"

11

Puede tener tres colores en un degradado. Un color inicial, un color final y un color central.

<gradient 
     android:angle="integer" 
     android:centerX="integer" 
     android:centerY="integer" 
     android:centerColor="integer" 
     android:endColor="color" 
     android:gradientRadius="integer" 
     android:startColor="color" 
     android:type=["linear" | "radial" | "sweep"] 
     android:usesLevel=["true" | "false"] /> 

Como alternativa, puede utilizar un LayerList Drawable y simplemente juntarlos.

+0

gracias por su respuesta, pero utilizando centerColor no parece ser la solución. Mira mi pregunta de nuevo, agregué algunas informaciones – grunk

+0

Luego tendrá que pasar a la segunda mitad de puede responder y hacer dos degradados y usar una LayerList. – CaseyB

+0

No parece posible ajustar fácilmente una forma al 50% de altura. Probablemente usaré una imagen estirable. Gracias por tu tiempo. – grunk

Cuestiones relacionadas