2011-05-22 86 views

回答

13

您首先需要在xml中創建漸變。

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient 
    android:startColor="#FFFF00FF" 
    android:endColor="#FFFFFFFF" 
    android:angle="270"/> 
</shape> 

您應該將其添加到其中一個drawables.xml中。然後,您應該能夠將此應用於xml中的ListView。

android:[email protected]/yourdrawable 

setBackgroundResource(R.drawable.yourdrawable); 
+0

感謝您的回答將此到您的視圖。我無法使用它,因爲我的應用程序的顏色變得太暗了。我不確定它會起作用,因爲即使顏色發生變化,它也顯得相同。 – 2011-05-23 20:42:53

+0

您是否嘗試在更改漸變定義後重建/清理項目? – 2011-05-23 21:18:21

+0

好的,問題是我需要使用setBackgroundResource - 現在它像一個魅力。謝謝! – 2011-05-23 23:47:56

-1
setBackgroundDrawable(R.drawable.my_fancy_gradient_or_picture) 
8

我會給你一個示例代碼

<item android:state_pressed="true" > 
    <shape> 
    <gradient 
    android:startColor="#ff5500" 
    android:endColor="#999999" 
    android:angle="270" /> 
    <stroke 
    android:width="3dp" 
    android:color="#999999" /> 
    <corners 
    android:radius="3dp" /> 
    <padding 
    android:left="10dp" 
    android:top="10dp" 
    android:right="10dp" 
    android:bottom="10dp" /> 
    </shape> 
    </item> 

    <item android:state_focused="true" > 
    <shape> 
    <gradient 
    android:endColor="#ff5500" 
    android:startColor="#999999" 
    android:angle="270" /> 
    <stroke 
    android:width="3dp" 
    android:color="#999999" /> 
    <corners 
    android:radius="3dp" /> 
    <padding 
    android:left="10dp" 
    android:top="10dp" 
    android:right="10dp" 
    android:bottom="10dp" /> 
    </shape> 
    </item> 

    <item> 
    <shape 
    android:shape="rectangle"> 

    <gradient android:type="radial" android:gradientRadius="50" 
    android:startColor="#999999" android:endColor="#000000" /> 
    <!-- <corners--> 
    <!-- android:radius="10dp" />--> 
    <corners android:bottomRightRadius="7dp" android:bottomLeftRadius="7dp" 
    android:topLeftRadius="7dp" android:topRightRadius="7dp"/> 
    </shape> 
    </item> 
    </selector> 

從繪製

+1

感謝sree的代碼 – DroidBot 2012-01-06 09:28:19