2010-02-21 2 views
8

J'essaie de créer un dessin en XML, un rectangle avec un dégradé sur la moitié supérieure et un autre sur la moitié inférieure. Ce n'est pas la façon de le faire, apparemment:Création d'un rectangle à dessiner en xml avec un dégradé sur la moitié supérieure et l'autre sur la moitié inférieure

<?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:startColor="#5a5a5a88" 
         android:endColor="#14141488" 
         android:angle="270" android:centerX="0.25"/> 

     </shape> 
    </item> 
    <item> 
     <shape android:shape="rectangle" android:top="80px"> 
       <gradient 
         android:startColor="#5aff5a88" 
         android:endColor="#14ff1488" 
         android:angle="270" android:centerX="0.25"/> 

     </shape> 
    </item> 
</layer-list> 

Comment puis-je faire, de préférence d'une manière qui le rend extensible à une hauteur?

Répondre

8

Si votre objectif est d'avoir un gradient avec une couleur centrale (commence à la couleur A, des transitions à B au milieu, puis passe à C à la fin), ajouter android:centerColor et android:centerY attributs à un de vos <shape> éléments et arme l'autre. Vous pouvez faire le dégradé en trois couleurs dans une seule forme.

+0

En fait, je veux deux zones de couleurs différentes ... donc, il ne serait pas vraiment passer à une autre couleur à la fin. Au milieu, il commencerait par une couleur entièrement différente et passerait à une autre couleur à la fin. – synic

+0

Alors pourquoi avez-vous besoin de tout dans un 'Drawable'? '' n'est pas un 'LinearLayout' - ils ne sont pas empilés verticalement. – CommonsWare

+0

J'ai besoin de tout en un seul Drawable parce que je veux l'utiliser comme arrière-plan pour un LinearLayout. – synic

0

petit bug pour vous, premier attribut doit être dans l'élément de l'article;)

il oeuvre:

<?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:startColor="#5a5a5a88" 
        android:endColor="#14141488" 
        android:angle="270" android:centerX="0.25"/> 

     </shape> 
    </item> 
    <item android:top="80dp"> 
    <shape android:shape="rectangle"> 
      <gradient 
        android:startColor="#5aff5a88" 
        android:endColor="#14ff1488" 
        android:angle="270" android:centerX="0.25"/> 

    </shape> 
</item> 
</layer-list> 
Questions connexes