【问题标题】:Generate android theme at runtime在运行时生成 android 主题
【发布时间】:2014-05-16 19:37:16
【问题描述】:

我们的设计要求一些在运行时设置强调色的活动。该强调色用于 UI 的不同部分(按钮文本、背景颜色……)。

理想情况下,我想设置在运行时生成一个主题,以用于活动。主题将基于应用资源中定义的静态主题,但动态设置一个样式属性(accentColor)。

我还没有找到一种方法来做到这一点。我错过了什么吗?

【问题讨论】:

  • 您不能以编程方式创建主题。但是按钮和所有东西通常使用 9patch 图像。您可以使用一张白色图像并使用 SetColorFilter 将其更改为您想要的,但是您需要手动更改每个视图,并且仍然很难更改操作栏的强调色和类似的东西。所以我猜你应该生成 10 个不同的主题,然后在活动开始时更改它。
  • 如果我在构建时知道accentColor 的值,10 个不同的主题会起作用,但它们来自我们的后端
  • 然后要么增加你将在应用程序中打包的主题数量,要么减少后端的颜色主题选择。我害怕在这里什么都做不了。

标签: android android-theme android-styles


【解决方案1】:

我不知道这是否是您的意思,但您可以通过编程方式更改 Android 中任何视图的颜色或其他属性,例如 view.setBackgroundColor(Color.RED),是这样吗?你想做什么?

【讨论】:

  • 当然可以,但我必须在每个使用该颜色的元素上设置颜色,在每个在运行时获得强调色的活动中。这就是我现在所做的,但如果所有这些视图都可以引用我可以在运行时设置的样式属性会更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-01
  • 1970-01-01
  • 2023-02-24
相关资源
最近更新 更多