android主题 - 在自定义主题中定义颜色
android主题 - 在自定义主题中定义颜色
我确信有一个简单的答案,但我找不到,所以我把它放到stackoverflow上……;-)
我来举个例子。我有一个安卓应用程序,用户可以在偏好设置中选择主题-暗色或亮色主题。根据所选择的主题,我必须调整应用程序中的20个颜色。所以我希望我可以在主题中定义颜色,然后在我的TextView等控件中使用这些已定义的颜色的名称。然而,到目前为止,我无法弄清楚如何做到这一点,也找不到任何解决方案。我真的不想为这20个颜色定义额外的暗色和亮色样式,但到目前为止,这似乎是我能找到的唯一解决方案。
非常感谢任何提示
马丁:
更新:
以下是我正在寻找的伪代码语法。这可行吗?
问题的出现原因:
这个问题的出现是因为在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。