嗨,我在xml中有一个可绘制的形状,它用作视图的背景。需要根据情况在代码中更改其颜色。
所以我在做
ShapeDrawable d = (ShapeDrawable) getResources().getDrawable(R.drawable.shape1);
d.getPaint().setShader(sd1);
但是getDrawable返回一个渐变drawable,将其强制转换为ShapeDrawable会产生错误。
因此,如何在代码中获取shapeDrawable并修改其属性。
最佳答案
我能够通过将其转换为GradientDrawable而不是ShapeDrawable来解决此问题。
GradientDrawable shape = (GradientDrawable) getResources().getDrawable(R.drawable.shape1);
shape.setColor(Color);
当我基于Holo.Dialog主题创建具有自定义样式的活动时,使用了此功能。