【发布时间】:2011-02-01 17:16:43
【问题描述】:
我正在准备我的应用程序,以便与 Honeycomb 顺利配合。我有一个关于 android 主题的小美学问题。
对于蜂窝,建议使用以下主题。
android:theme="@android:style/Theme.Holo.Light"
如何让我的应用在以前的版本中使用时使用另一个主题?
提前致谢
【问题讨论】:
标签: android android-3.0-honeycomb
我正在准备我的应用程序,以便与 Honeycomb 顺利配合。我有一个关于 android 主题的小美学问题。
对于蜂窝,建议使用以下主题。
android:theme="@android:style/Theme.Holo.Light"
如何让我的应用在以前的版本中使用时使用另一个主题?
提前致谢
【问题讨论】:
标签: android android-3.0-honeycomb
编辑:针对已发布的 3.0 SDK 版本进行了更新。
一种方法是设置<uses-sdk android:targetSdkVersion="11">。您还应该将它放在您的 <application> 定义之上。这将告诉系统在可用时使用全息主题,否则使用默认主题。
另一种方法是定义一个主题,比如MyTheme,它根据 API 级别/操作系统版本从不同的主题继承。您可以使用resource directory qualifiers 来执行此操作。
您的目录结构可能如下所示:
res/
values/
styles.xml
values-v11/
styles.xml
res/values/styles.xml 的内容类似于:
<resources>
<style name="MyTheme" parent="@android:style/Theme.Light">
...
</style>
</resources>
res/values-v11/styles.xml 的内容类似于:
<resources>
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
...
</style>
</resources>
请注意,在未来,Holo 主题可能并不总是在 API 级别上有意义,因此您可能需要稍后调整此方法。您还可以使用其他目录限定符,例如 @987654330 @ 之类的。这完全取决于您。
【讨论】: