【发布时间】:2013-01-15 06:28:38
【问题描述】:
我希望我能解释我所追求的。本质上,我的用户要求我在我的应用程序中允许不同的外观,我希望我可以使用主题来做到这一点。
我希望我能做这样的事情:
<style name="NewTheme" parent="android:Theme.Dark">
<item name="labelColor">#f90</item>
<item name="buttonColor">#fff</item>
<item name="buttonBg">@drawable/button</item>
</style>
<style name="OldTheme" parent="android:Theme.Dark">
<item name="labelColor">#fa0</item>
<item name="buttonColor">#88f</item>
<item name="buttonBg">@drawable/button_old</item>
</style>
然后在我的styles.xml中引用这些值:
<style name="labelStyle">
<item name="android:textColor>@labelColor</item>
</style>
<style name="buttonStyle">
<item name="android:textcolor">@buttonColor</item>
<item name="android:background">@buttonBg</item>
</style>
我知道这个语法是错误的,但什么是正确的语法?基本上,我想创建一组属性(颜色、背景、其他一些东西)并根据主题选择它们。
【问题讨论】:
-
为什么不创建一个colors.xml,将你所有的颜色集添加到它并定义你的个人风格,参考你的XML颜色?这一直对我有用。
-
感谢大家的帮助。简短的回答是我需要在 attrs.xml 中定义我的元值,例如"
" -
Siddharth,我可以将我的颜色放入 colors.xml 中,但我将如何根据主题更改它们?
-
@EdwardFalk 如何在我的活动中获得 labelColor?我可以使用以下行获取 colors.xml 中的颜色:getResources().getColor(R.id.labelColor);但是,如果它在 attr.xml 文件中定义,我将如何获得这种颜色?
标签: android