Android 将特定主题应用于可绘制的

Android 将特定主题应用于可绘制的,android,Android,如标题所述,我希望能够以编程方式将主题应用于可绘制资源 我有一个XML可绘制资源,它使用?attr/logoColorPrimary引用颜色。如果我在主菜单中定义了颜色,它就会正常工作,并且可以用正确的颜色显示drawable 现在我想在应用程序的其他地方使用相同的可绘制资源,但使用不同的颜色。有没有一种方法可以通过编程将不同的主题应用于该绘图表?当然,我尝试在可绘制的AppCompatImageView上使用样式XML属性。但是,事实证明,在视图上局部重新定义styl并不会覆盖传递给可绘制对象

如标题所述,我希望能够以编程方式将主题应用于可绘制资源

我有一个XML可绘制资源,它使用?attr/logoColorPrimary引用颜色。如果我在主菜单中定义了颜色,它就会正常工作,并且可以用正确的颜色显示drawable

现在我想在应用程序的其他地方使用相同的可绘制资源,但使用不同的颜色。有没有一种方法可以通过编程将不同的主题应用于该绘图表?当然,我尝试在可绘制的AppCompatImageView上使用样式XML属性。但是,事实证明,在视图上局部重新定义styl并不会覆盖传递给可绘制对象的属性。

尝试使用主题的参数,例如

val yourTheme = ContextThemeWrapper(baseContext, R.style.AppTheme).theme
ResourcesCompat.getDrawable(resources, R.drawable.your_drawable, yourTheme)

你试过使用android:theme XML属性吗?哦。。。这很有效。。。谢谢你能把它作为一个答案提出来让我接受吗?你在你的答案中指定了“程序”,所以我想我会给你的,不用担心