我有一个文本视图,它获取名为 background.xml 的文件作为其背景。这是 background.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"/>
我正在尝试保留此 xml 文件的所有其他属性并以编程方式更改梯度运行时。有人告诉我可以使用 StateListDrawable 和 GradientDrawable 来做到这一点。这是我不成功的尝试:
TextView myTextView1 = ......
StateListDrawable sld = new StateListDrawable();
GradientDrawable drawable = new GradientDrawable();
drawable.setColor(myColor);
sld.addState(new int[] { android.R.attr.state_enabled }, drawable);
myTextView1.setBackgroundDrawable(sld);
但这似乎没有做任何事情。我这样做正确吗?