【问题标题】:Android: UI old interfaceAndroid:UI老界面
【发布时间】:2012-05-18 12:40:01
【问题描述】:

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

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

我尝试使用自定义 MyTheme,但所有具有 @android:style/Theme.Dialog 的 Activity 继续显示为旧主题。

我的活动如下所示:

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

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

【问题讨论】:

标签: android android-layout


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • xBroak,我也很确定,但我不知道为什么它不能这样工作。
    • 在你的 manifest 中使用以下内容,确保主题在 ure XML 中设置为明确的,因为文档指出没有理由不默认。
    猜你喜欢
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    相关资源
    最近更新 更多