我有一个以 ShapeDrawable 作为背景的视图,并且我希望能够仅更改 Drawable 的背景颜色(“实心”部分),而不更改其他部分(例如“笔划”)。有没有办法做到这一点?谢谢。
问问题
143 次
2 回答
0
setColorFilter() 怎么样。
您可以将它与 invalidate() 结合使用,以便重新绘制可绘制对象。看看这些链接以供参考
我还在堆栈上看到了一篇不错的帖子。看看这个。 如何更改Android drawable的颜色
于 2012-06-01T10:48:23.350 回答
0
我找到了一个解决方案:实际上,在我的情况下,我将 drawable 定义为 XML 文件,Android 将其转换为 GradientDrawable 对象,而不是 ShapeDrawable,因此我将其转换为 RTT(运行时类型),然后使用它的设置颜色功能:
GradientDrawable colorBackground=(GradientDrawable)currentColorView.getBackground();
colorBackground.setColor(color);
正如我所说,它仅适用于 GradientDrawable,因此对于其他可绘制类型,必须搜索另一种方式。
于 2012-06-02T16:14:01.377 回答