2011-08-10 29 views
10

Para un linearLayout, quiero tener un degradado junto con una imagen embaldosada (repetida) en el fondo. Ya tengo un conjunto xml de forma como fondoFondo de Android con degradado y mosaico de imagen

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient android:angle="90" 
     android:endColor="@color/color1" 
     android:startColor="@:color/color2"> 
    </gradient> 
</shape> 

¿Cómo agrego una imagen de mosaico bg?

+0

Mire este [enlace] (http://androidblogger.blogspot.com/2009/01/how-to-have-tiled-background-cont.html) para obtener una buena explicación. –

+0

Sé cómo hacer eso, lo que no sé es cómo hacer que ambos trabajen juntos. – Taranfx

+1

Ok, lo siento. Entonces quizás esta otra [pregunta] (http://stackoverflow.com/questions/4159959/android-circular-gradient-alpha-mask) pueda ayudarlo. Usaría la imagen del mosaico en un mapa de bits xml como se explica en el primer enlace que publiqué, y luego trataré de agregar el degradado sobre el dibujo en un lienzo como esta otra pregunta de SO. Espero eso ayude. –

Respuesta

23

Echa un vistazo LayerLists.

El siguiente es un XML dibujable, llamado myBackground.xml, ubicado en res/drawable. Configúrelo como fondo del View para el que desea establecer un degradado y fondo de mosaico.

En el siguiente ejemplo, la imagen embaldosada estará en la parte superior del degradado, porque se especifica más adelante en LayerList; obviamente, si está en la parte superior, necesitará cierta transparencia en el mosaico de imagen png (puede configurar esto en una aplicación de edición de imágenes, como GIMP o Photoshop).

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <gradient 
       android:type="radial" android:gradientRadius="500" 
       android:startColor="#17568A" 
       android:endColor="#494C4F" /> 

     </shape> 
    </item> 
    <item> 
     <bitmap 
      android:src="@drawable/tile_classy_fabric" 
      android:tileMode="repeat" /> 
    </item> 
</layer-list> 

"tile_classy_fabric" se refiere a un archivo llamado "tile_classy_fabric.png" en mi carpeta res/drawable (250 píxeles cuadrados, ya que es tileable - no es necesario que sea muy grande).