0

我有几个使用 Android 1.6 及更高版本创建的应用程序。问题是当我在最近的 Android(设备或模拟器)(如 ICS)上运行这些应用程序时,我没有 Holo 主题。

我知道我可以找到很多关于如何指定主题的线程,但是当我现在创建一个新应用程序时,我有了新主题而没有任何代码行。

我不想在所有 android 版本上都有 ICS 主题,只是 ICS 上的 ICS 主题,比如 ICS 上的新全息按钮样式和旧的灰色样式。现在我只有所有版本的灰色按钮。

我可以创建新的空项目并将我的所有文件复制到其中,但必须在某个地方有一个隐藏的值来改变它。

在我的清单中,我有:

<uses-sdk android:minSdkVersion="3" />
<uses-sdk android:targetSdkVersion="14" />

新创建的项目和新创建的项目有什么区别?

4

1 回答 1

4

我的理解是您希望您的应用程序在旧版(经典)主题和基于 API 版本的新 Holo 主题之间切换。

首先,在您的values( res/values) 文件夹中创建一个新的 xml。调用它styles.xml。它应该包含以下几行:

<resources>
<style name="AppTheme" parent="@android:style/Theme.Black"/>
</resources> 

然后在res被调用的新文件夹中创建一个values-v11。在这个新文件夹中创建另一个新的 xml。也将其命名styles.xml此文件应包含以下行:

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

然后在你的AndroidManifest.xml你的Application节点应该包含这一行:

android:theme="@style/AppTheme"

现在在具有 Honeycomb 或更高版本的设备上,您将获得 Holo 主题,而对于其他一切,您将获得旧的经典主题。您可以轻松地对此进行试验以满足您的需求 - 这是基于 API 版本在主题之间切换的一般方式。

于 2012-12-21T15:25:55.023 回答