Android如何在setBackgroundColor上获得渐变效果
在设置视图的背景色时,有没有办法获得渐变效果或半透明效果?例如,此代码:Android如何在setBackgroundColor上获得渐变效果,android,gradient,setbackground,Android,Gradient,Setbackground,在设置视图的背景色时,有没有办法获得渐变效果或半透明效果?例如,此代码: selView.setBackgroundColor(Color.rgb(240, 128, 128)); // light red 高亮显示列表视图中的选定视图。渐变或背景都很酷。首先需要在xml中创建渐变 setBackgroundDrawable(R.drawable.my_fancy_gradient_or_picture) <shape xmlns:android="http://schemas.and
selView.setBackgroundColor(Color.rgb(240, 128, 128)); // light red
高亮显示列表视图中的选定视图。渐变或背景都很酷。首先需要在xml中创建渐变
setBackgroundDrawable(R.drawable.my_fancy_gradient_or_picture)
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#FFFF00FF"
android:endColor="#FFFFFFFF"
android:angle="270"/>
</shape>
或
我会给你一个示例代码
<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>
从drawable将此应用于您的视图谢谢您的回答。我无法使用它,因为它的颜色对我的应用程序来说太暗了一点。我不确定它是否会起作用,因为即使更改颜色,它看起来也是一样的。在更改渐变定义后,您是否尝试重建/清理项目?好的,问题是我需要使用setBackgroundResource-现在它工作得很好。谢谢
setBackgroundResource(R.drawable.yourdrawable);
<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>