設置視圖的背景色時,是否有辦法獲得漸變效果或半透明效果?例如,此代碼:Android如何在setBackgroundColor上獲得漸變效果
selView.setBackgroundColor(Color.rgb(240, 128, 128)); // light red
在列表視圖中突出顯示所選視圖。無論是漸變還是背景都會很酷。
設置視圖的背景色時,是否有辦法獲得漸變效果或半透明效果?例如,此代碼:Android如何在setBackgroundColor上獲得漸變效果
selView.setBackgroundColor(Color.rgb(240, 128, 128)); // light red
在列表視圖中突出顯示所選視圖。無論是漸變還是背景都會很酷。
您首先需要在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);
setBackgroundDrawable(R.drawable.my_fancy_gradient_or_picture)
我會給你一個示例代碼
<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>
從繪製
感謝sree的代碼 – DroidBot 2012-01-06 09:28:19
感謝您的回答將此到您的視圖。我無法使用它,因爲我的應用程序的顏色變得太暗了。我不確定它會起作用,因爲即使顏色發生變化,它也顯得相同。 – 2011-05-23 20:42:53
您是否嘗試在更改漸變定義後重建/清理項目? – 2011-05-23 21:18:21
好的,問題是我需要使用setBackgroundResource - 現在它像一個魅力。謝謝! – 2011-05-23 23:47:56