android主题 - 在自定义主题中定义颜色

15 浏览
0 Comments

android主题 - 在自定义主题中定义颜色

我确信有一个简单的答案,但我找不到,所以我把它放到stackoverflow上……;-)

我来举个例子。我有一个安卓应用程序,用户可以在偏好设置中选择主题-暗色或亮色主题。根据所选择的主题,我必须调整应用程序中的20个颜色。所以我希望我可以在主题中定义颜色,然后在我的TextView等控件中使用这些已定义的颜色的名称。然而,到目前为止,我无法弄清楚如何做到这一点,也找不到任何解决方案。我真的不想为这20个颜色定义额外的暗色和亮色样式,但到目前为止,这似乎是我能找到的唯一解决方案。

非常感谢任何提示

马丁:

更新:

以下是我正在寻找的伪代码语法。这可行吗?





0
0 Comments

问题的出现原因:

这个问题的出现是因为在Android主题中定义颜色时,官方文档中没有提供关于使用属性的解释。

解决方法:

解决方法是首先在attr.xml文件中定义自定义颜色字段,然后在主题中定义这些颜色,最后在布局文件中使用这些颜色。

首先,在attr.xml中定义自定义颜色字段:






接下来,在主题中定义这些颜色:



最后,在布局文件中使用这些颜色:

android:id="@+id/quoteTitle"

android:textColor="?titleColor"

...

android:id="@+id/quoteIntro"

android:textColor="?introColor"

...

以上就是解决这个问题的方法。

参考资源:

我在这里找到了解决方法。

关于使用属性的最佳资源是这里

感谢!我只想使用primary/primaryDark/accent颜色。所以根据你的回答,我明白我只需要使用?colorPrimary/?colorPrimaryDark/?colorAccent。

0