2010-02-21 45 views
8

我試圖在xml中創建一個drawable,一個在上半部分具有一個漸變的矩形,另一個在下半部分。這是不是做到這一點,顯然:用xml在上半部分創建一個可繪製的矩形,在上半部分創建一個漸變,另一個在下半部分

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

我怎麼能這樣做,最好的方式,使其可以拉伸到任何高度?

回答

8

如果您的目標是具有帶中心顏色的梯度(開始於顏色A,轉換在中間到B,然後在端部過渡到C)中,添加android:centerColorandroid:centerY屬性到您<shape>元件中的一個和核對另一個。你可以在一個形狀中完成三色漸變。

+0

其實,我想要的顏色的兩個不同的領域......所以,它不會真的在最後過渡到另一種顏色。 在中間,它將以完全不同的顏色開始,並在最後過渡到另一種顏色。 – synic 2010-02-21 22:06:09

+0

那麼爲什麼你需要一個'Drawable'呢? ''不是'LinearLayout' - 它們不垂直堆疊。 – CommonsWare 2010-02-21 23:03:20

+0

我需要它在一個Drawable中,因爲我想將它用作LinearLayout的背景。 – synic 2010-02-21 23:38:48

0

你小bug,頂級屬性應該是在項目元素;)

它的工作:

<?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> 
相關問題