主题:主题依赖可绘制?

时间:2011-09-13 21:34:54

标签: android android-theme

我希望能够声明一些主题,以便轻松更改我的应用的外观。所以我知道你可以定义一个继承自android:Theme的样式,然后在其中定义属性。

但有两个问题:

  1. 如果我想在应用程序中为不同的视图设置多种背景颜色,该怎么办?因此,我可以拥有整个活动的背景和活动中文本视图的不同背景以及按钮等的另一个背景。但是这些(不同的)颜色主题依赖吗?
  2. 是否可以定义一组依赖于正在使用的主题的drawable。我的意思与你如何为不同的屏幕密度定义不同的drawables类似。理想情况下,我会使用不同颜色方案的图像用于不同的主题。可以在android中定义这种行为吗?
  3. 感谢您的帮助, 詹姆斯

1 个答案:

答案 0 :(得分:3)

您可以为每种窗口小部件类型定义不同颜色或可绘制的不同样式,并参考各种主题中的样式。例如:

<!-- themes -->

<style name="MyTheme" parent="android:style/Theme.Light">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@drawable/something</item>
    <item name="android:buttonStyle">@style/MyButton</item>
</style>

<style name="MyTheme.Red">
    <item name="android:buttonStyle">@style/MyButton.Red</item>
</style>

<style name="MyTheme.Blue">
    <item name="android:buttonStyle">@style/MyButton.Blue</item>
</style>

<!-- styles -->

<style name="MyButton" parent="android:style/Widget.Button">
    <item name="android:background">@drawable/btn_mydefault</item>
</style>

<style name="MyButton.Red">
    <item name="android:background">@drawable/btn_red</item>
</style>

<style name="MyButton.Blue">
    <item name="android:background">@drawable/btn_blue</item>
</style>