2011-10-30 26 views
19

¿Cómo puedo colocar una forma de degradado radial como fondo en LinearLayout? Esto es lo que actualmente tiene:Cómo colocar el fondo de degradado radial

La forma:

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <gradient 
     android:endColor="#e6e6e6" 
     android:gradientRadius="800" 
     android:startColor="#fafaf9" 
     android:type="radial"/> 
</shape> 

El LinearLayout:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/accueil_bg_gradient"> 
</LinearLayout> 

yo sólo quiero tener mi gradiente a partir de la esquina superior izquierda de la pantalla, y terminando en la esquina inferior derecha.

¡Muchas gracias!

+0

Si desea cambiar el ángulo de la pendiente tratar de usar 'androide: angle' en el < [gradient] (http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape) element. – m039

+0

Gracias por responder, pero es un gradiente radial – alxscms

Respuesta

43

Se puede mover el centro del degradado radial en una posición diferente de la dibujable usando "centerx" y "atributos" centery del gradiente. Son valores de coma flotante que van de 0 a 1.0 donde (valores del centro X, centroY en consecuencia) 0,0 es superior izquierda y 1,1 es esquina inferior derecha.

El valor predeterminado es 0.5,0.5 que es el centro del espacio dibujable/asignado. Ejemplo desde hace mucho (radio) 100px, gradiente de blanco-negro cuyo segundo comienza en la esquina superior izquierda sería:

<shape android:shape="rectangle"> 
     <gradient 
      android:type="radial" 
      android:startColor="#ffffff" 
      android:endColor="#000000" 
      android:gradientRadius="100" 
      android:angle="270" 
      android:centerX="0" 
      android:centerY="0"/> 

    </shape> 
-1

conjunto estos antecedentes mybackground.xml:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item> 
     <shape android:shape="rectangle" android:layout_width="wrap_content"> 
      <stroke android:width="10dp" android:color="@color/darkBlue" /> 
      <solid android:color="#00000000" /> 
      <padding android:left="1dp" android:top="1dp" android:right="1dp" 
       android:bottom="1dp" /> 
     </shape> 
    </item> 

    <item> 
     <shape android:shape="rectangle"> 
      <gradient android:startColor="@color/grayBlue" 
       android:endColor="@color/lightBlue" android:angle="270" 
       android:centerColor="@color/lightBlue" /> 
      <!-- border width and color --> 
      <stroke android:width="1dp" android:color="#FFDDDDDD" /> 
      <padding android:left="10dp" android:top="8dp" android:right="10dp" 
       android:bottom="8dp" /> 
     </shape> 
    </item> 

</layer-list> 
+0

Hola, gracias, pero el código que me diste es para un degradado lineal, pero me gustaría tener un degradado radial con el centro en la esquina superior izquierda y el extremo en el inferior derecho esquina – alxscms

Cuestiones relacionadas