2011-08-10 3 views
10

Pour un linéaire, je souhaite avoir un dégradé avec une image en mosaïque (répétée) en arrière-plan. J'ai déjà un format xml en arrière-planFond Android avec dégradé et image en mosaïque

<?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> 

Comment ajouter une image bg en mosaïque?

+0

Pour une bonne explication, consultez ce lien [http://www.androidblogger.blogspot.com/2009/01/how-to-have-tiled-background-cont.html]. –

+0

Je sais comment faire ça, ce que je ne sais pas, c'est comment faire les deux ensemble. – Taranfx

+1

Ok, désolé. Alors peut-être cette autre [question] (http://stackoverflow.com/questions/4159959/android-circular-gradient-alpha-mask) peut vous aider. J'utiliserais l'image de la mosaïque dans un fichier xml bitmap comme expliqué dans le premier lien que j'ai posté, puis j'essayerais d'ajouter le dégradé dessus en dessinant sur une toile comme cette autre question SO. J'espère que cela aide. –

Répondre

23

Découvrez LayerLists.

Ce qui suit est un dessin XML, appelé myBackground.xml, placé dans res/drawable. Définissez-le comme arrière-plan du View pour lequel vous souhaitez définir un dégradé et un arrière-plan en mosaïque. Dans l'exemple ci-dessous, l'image en mosaïque sera au-dessus du dégradé, car elle est spécifiée plus tard dans le LayerList - évidemment, si elle est en haut, vous aurez besoin de transparence sur la vignette d'image png (vous pouvez définir ceci dans une application d'édition d'image, comme GIMP ou 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 » fait référence à un fichier appelé « tile_classy_fabric.png » dans mon res/drawable dossier (250px carré, comme il est carreler - nous ne avons pas besoin super grand).

Questions connexes