根据我的AppTheme样式选择更改自定义样式

时间:2015-01-19 22:20:02

标签: android themes

我有一个应用程序,我想提供一个明亮和黑暗的主题。

例如:

<style name="AppTheme.Light" parent="@android:style/Theme.Holo.Light">
    ...
</style>

<style name="AppTheme.Dark" parent="@android:style/Theme.Holo.Dark">
    ...
</style>

我还有一个自定义样式,指定要应用于使用它的任何内容的背景:

<style name="MyCustomViewBackground">
  <item name="android:background">@drawable/half_alpha_white_rounded_background</item>
</style>

我如何安排MyCustomViewBackground样式指定AppTheme.Light样式的一个背景(half_alpha_white_rounded_background),以及AppTheme.Dark样式的不同背景(half_alpha_dark_rounded_background)?

1 个答案:

答案 0 :(得分:2)

这应该有效(没有测试):

attrs.xml

<resources>
        <attr name="customViewBackground" format="reference" />
</resources>

styles.xml

<style name="MyCustomViewBackground">
    ...
    <item name="android:background">?attr/customViewBackground</item>
    ...
</style>

的themes.xml

<style name="AppTheme.Light" parent="@android:style/Theme.Holo.Light">
    ...
    <item name="customViewBackground">@drawable/half_alpha_white_rounded_background</item>
    ...
</style>

<style name="AppTheme.Dark" parent="@android:style/Theme.Holo.Dark">
    ...
    <item name="customViewBackground">@drawable/half_alpha_dark_rounded_background</item>
    ...
</style>