2010-02-21 11 views
8

Próbuję utworzyć wyciągnięcie w formacie xml, prostokąt z jednym gradientem w górnej połowie, a drugi w dolnej połowie. To nie jest sposób na to, jak widać:Tworzenie prostokąta w formacie xml z jednym gradientem w górnej połowie i drugim w dolnej połowie

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

Jak mogę to zrobić, najlepiej w sposób, który sprawia, że ​​rozciągliwy do dowolnej wysokości?

Odpowiedz

8

Jeśli twoim celem jest, aby gradient z centralnym kolorem (zaczyna się od koloru A, przechodzi do B w środku, a następnie przechodzi do C na końcu), dodać android:centerColor i android:centerY atrybutów do jednego z elementów <shape> i nuke drugiej. Możesz wykonać trójkolorowy gradient w jednym kształcie.

+0

Faktycznie, chcę dwa różne obszary kolorów ... tak, to naprawdę nie będzie przechodzić na inny kolor na końcu. W środku zaczynałoby się od zupełnie innego koloru i przejścia do innego koloru na końcu. – synic

+0

Więc dlaczego potrzebujesz tego wszystkiego w jednym 'Drawable'? '' nie jest 'LinearLayout' - nie układa się pionowo. – CommonsWare

+0

Potrzebuję tego wszystkiego w jednym Drawable, ponieważ chcę go użyć jako tła dla LinearLayout. – synic

0

mały błąd na ciebie, top atrybut powinien być elementem artykuł;)

praca to:

<?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> 
Powiązane problemy