2013-10-18 47 views
0

我有定义为这样的XML文件的背景:设置颜色编程

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_enabled="true"> 
<shape android:padding="50dp" 
    android:shape="rectangle"> 
    <gradient android:startColor="@color/sendDarkColorGreen" android:centerColor="@color/sendDarkColorGreen" android:endColor="@color/sendLightColorGreen" android:angle="90"/> 
    <stroke android:width="2dip" android:color="#FFFFFF"/> 
    <corners android:radius="20dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" /> 
</shape> 
</item> 
</selector> 

这是施加到一个TextView背景xml文件。我想以编程方式更改此xml文件的渐变颜色?我怎样才能做到这一点?我似乎难住这

+0

在运行时无法修改资源xml文件。做你想做的事的唯一方法就是使用等价的Java方法来实现各种属性。 – Squonk

回答

0

你不能修改xml文件本身。

你可以编程方式创建一个StateListDrawable并给它一个GradientDrawable

然后,您将StateListDrawable设置为TextView的背景。

+0

你能给我一个代码示例吗?例如,如果我的xml文件被称为background.xml,我该如何设置它StateListDrawable? – user2779837