我正在尝试使用 Drawable 背景,到目前为止还没有遇到任何问题。
我现在尝试在运行时更改渐变背景颜色。
不幸的是,似乎没有 API 可以在运行时更改它。甚至不尝试 mutate() 可绘制对象,如下所述:可绘制突变 http://android-developers.blogspot.com/2009/05/drawable-mutations.html
示例 XML 如下所示。正如预期的那样,它有效。
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#330000FF"
android:endColor="#110000FF"
android:angle="90"/>
</shape>
遗憾的是,我想要一个包含各种颜色的列表,并且必须在运行时以编程方式更改它们。
还有另一种方法可以在运行时创建渐变背景吗?也许甚至完全不使用 XML?
是的!找到办法了!
不得不忘记 XML,但我是这样做的:
在我的 getView() 重载函数(ListAdapter)上,我只需要:
int h = v.getHeight();
ShapeDrawable mDrawable = new ShapeDrawable(new RectShape());
mDrawable.getPaint().setShader(new LinearGradient(0, 0, 0, h, Color.parseColor("#330000FF"), Color.parseColor("#110000FF"), Shader.TileMode.REPEAT));
v.setBackgroundDrawable(mDrawable);
这给了我与上面的 XML 背景相同的结果。现在我可以以编程方式设置背景颜色。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)