2

我希望我能解释我所追求的。本质上,我的用户要求我在我的应用程序中允许不同的外观,我希望我可以使用主题来做到这一点。

我希望我能做这样的事情:

<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>

我知道这种语法是错误的,但正确的语法可能是什么?基本上,我想创建一组属性(颜色、背景、其他一些东西)并根据主题选择它们。

4

1 回答 1

2

要在 Android 中使用主题和样式,您必须:

  1. 在themes.xml 中定义一个或多个主题,并在那里设置您的样式定义。

  2. 在 attrs.xml 中定义自定义属性,也就是自定义样式。

  3. 在styles.xml 中描述您的自定义样式的值。

  4. 在你的布局文件中,给你的视图一个样式属性,它有一个自定义样式名称作为它们的值。

  5. 在 AndroidManifest.xml 或 Activity 的 onCreate() 中设置应用程序或活动的主题。这是通过在调用 setContentView() 之前在 Activity 的 onCreate() 方法中调用 setTheme() 来完成的。

  6. 要更改主题,您只需重新启动您的活动。

在此处输入图像描述

建议您看一下本教程,它涉及程序员想要在 android 主题上工作的所有内容(文本颜色、文本格式、可绘制状态列表等......)

于 2012-05-11T04:15:31.487 回答