【发布时间】:2014-05-16 19:37:16
【问题描述】:
我们的设计要求一些在运行时设置强调色的活动。该强调色用于 UI 的不同部分(按钮文本、背景颜色……)。
理想情况下,我想设置在运行时生成一个主题,以用于活动。主题将基于应用资源中定义的静态主题,但动态设置一个样式属性(accentColor)。
我还没有找到一种方法来做到这一点。我错过了什么吗?
【问题讨论】:
-
您不能以编程方式创建主题。但是按钮和所有东西通常使用 9patch 图像。您可以使用一张白色图像并使用 SetColorFilter 将其更改为您想要的,但是您需要手动更改每个视图,并且仍然很难更改操作栏的强调色和类似的东西。所以我猜你应该生成 10 个不同的主题,然后在活动开始时更改它。
-
如果我在构建时知道accentColor 的值,10 个不同的主题会起作用,但它们来自我们的后端
-
然后要么增加你将在应用程序中打包的主题数量,要么减少后端的颜色主题选择。我害怕在这里什么都做不了。
标签: android android-theme android-styles