Android 仅动态更改可绘制图形的特定部分
我有一个以ShapeDrawable为背景的视图,我希望能够只更改可绘制的背景颜色(“实心”部分),而不更改其他部分(例如“笔划”)。有没有办法做到这一点? 谢谢。设置ColorFilter()怎么样 您可以将其与invalidate()结合使用,以便重新绘制可绘制文件。请查看这些链接以供参考 我也在stack上看到了一篇不错的帖子。再看看这个。Android 仅动态更改可绘制图形的特定部分,android,android-view,Android,Android View,我有一个以ShapeDrawable为背景的视图,我希望能够只更改可绘制的背景颜色(“实心”部分),而不更改其他部分(例如“笔划”)。有没有办法做到这一点? 谢谢。设置ColorFilter()怎么样 您可以将其与invalidate()结合使用,以便重新绘制可绘制文件。请查看这些链接以供参考 我也在stack上看到了一篇不错的帖子。再看看这个。 我找到了一个解决方案:实际上,在我的例子中,我已经将drawable定义为XML文件,Android将其转换为GradientDrawable对象
我找到了一个解决方案:实际上,在我的例子中,我已经将drawable定义为XML文件,Android将其转换为GradientDrawable对象,而不是ShapeDrawable,因此我将其转换为RTT(运行时类型),然后使用其setColor函数:
GradientDrawable colorBackground=(GradientDrawable)currentColorView.getBackground();
colorBackground.setColor(color);
正如我所说,它只适用于GradientDrawable,所以对于其他可绘制类型,必须搜索另一种方法