【问题标题】:Difference between pre ICS and post ICS Holo theme relatedICS 前后 Holo 主题相关的区别
【发布时间】:2012-12-21 14:56:46
【问题描述】:

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

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

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

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

在我的清单中,我有:

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

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

【问题讨论】:

    标签: android themes android-4.0-ice-cream-sandwich


    【解决方案1】:

    我的理解是,您希望您的应用在旧版(经典)主题和基于 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 版本在主题之间切换的一般方式。

    【讨论】:

    • 我刚刚检查了一个在 ICS 上显示 Holo 主题的最新应用程序,但我没有指定它应该使用什么主题的 styles.xml。我根本没有 style.xml。必须有另一种选择。
    • 如果你没有在AndroidManifest 中指定any 主题,它可能会默认为设备默认值,即预Honeycomb 上的Theme.black 和@987654334 @ on Honeycomb 及以上。
    • 哦,是的,我在 manifest->activity 中标记了这一行 (android:theme="@android:style/Theme.NoTitleBar")。我永远不会认为它会改变标题栏的其他内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多