根据颜色设置Android应用程序的主题

根据颜色设置Android应用程序的主题,android,styles,themes,Android,Styles,Themes,我想为我的用户提供两个主题:光明和黑暗。我希望某个版面的背景色根据选择的主题而改变 基本上,我想有两个这样的主题: <style name="Theme.Light"> <item name="myBackgroundColor">#ffffff</item> </style> <style name="Theme.Dark"> <item name="myBackgroundColor">#000000&l

我想为我的用户提供两个主题:光明和黑暗。我希望某个版面的背景色根据选择的主题而改变

基本上,我想有两个这样的主题:

<style name="Theme.Light">
    <item name="myBackgroundColor">#ffffff</item>
</style>
<style name="Theme.Dark">
    <item name="myBackgroundColor">#000000</item>
</style>    
<RelativeLayout
    ...
    android:background="?myBackgroundColor"/>

#ffffff
#000000
然后从我的活动中,我会引用如下变量:

<style name="Theme.Light">
    <item name="myBackgroundColor">#ffffff</item>
</style>
<style name="Theme.Dark">
    <item name="myBackgroundColor">#000000</item>
</style>    
<RelativeLayout
    ...
    android:background="?myBackgroundColor"/>


我该怎么做呢?

好的,我已经想出了一个答案如果有人有更好的答案,请发布。

您需要将属性“myBackgroundColor”声明为可样式化。例如:

<declare-styleable name="TestStyleable">
    <attr name="myBackgroundColor" format="color|reference" />
</declare-styleable>

我不知道这个名字指的是什么,似乎你可以把它设置成任何东西。一旦您声明了这个块,您就可以像我上面所做的那样使用“myBackgroundColor”