我希望我能解释一下我的追求。从本质上讲,我的用户要求我在我的应用程序中允许不同的外观,我希望我可以使用主题。
我希望我可以这样做:
<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>
我知道这种语法错误,但可能是正确的语法?基本上,我想创建一组属性(颜色,背景,其他一些东西),并根据主题选择它们。
答案 0 :(得分:2)
要在Android中使用主题和样式,您必须:
在themes.xml中定义一个或多个主题并设置其定义 你的风格。
在attrs.xml中定义自定义属性,即自定义样式。
描述styles.xml中自定义样式的值。
在您的布局文件中,为您的视图提供一个样式属性,该属性具有 自定义样式名称作为其值。
在两者中设置应用程序或活动的主题 AndroidManifest.xml或Activity的onCreate()。这是通过在调用setContentView()之前调用activity的onCreate()方法中的setTheme()来完成的。
要更改主题,您只需重新开始活动。
Iadvice你看看这个tutorial它处理程序员想要在android主题上工作的所有东西(文本颜色,文本格式,状态列表drawable等...)