1

对于某些活动,我正在使用@Theme/Dialog,但这看起来像旧的 UI 2.3。如果我将 Manifest 中的 Activity 主题设置为 Holo/Dialog,那么这可以正常工作,但当然这不适用于旧设备。

如何在可用时强制使用 Holo 主题?

我尝试使用自定义 MyTheme,但所有具有 @android:style/Theme.Dialog 的活动仍然像旧主题一样出现。

我的活动如下所示:

 <activity
        android:name=".audio.TempoManager"
        android:label="Tempo Manager"
        android:theme="@android:style/Theme.Dialog" />

如果我将其更改为 @android:style/Theme.Holo.Dialog 那么在旧设备上,活动将不会作为对话框打开,而是作为简单活动打开。

4

2 回答 2

2

参考这篇博文。它回答了你的问题:holo-everywhere

主要是: 1. 你为所有pre-3.0 android 版本
编写一个theme.xml定义一个MyThemein的文件。2.为 3.0+ android 版本res/values/编写一个themes.xml定义MyThemein的文件。 3.在定义应用程序主题为。res/values-v11/
AndroidManifest.xmlMyTheme

第一个主题继承自@android:style/Theme.
第二个主题继承自@android:style/Theme.Holo.

于 2012-05-18T12:53:50.477 回答
0

如果 ICS 在设备上可用,它将默认为 Holo,

例如,如果您想在所有设备上通用地创建 ICS 字体,您将需要提供 ttf 字体文件资产并在自定义文本视图和/或按钮等中使用它。

于 2012-05-18T12:43:50.887 回答