如何使用Holo.Light主题,并在蜂窝前设备上回归'Light'?

koi*_*ing 77 android android-theme android-3.0-honeycomb android-4.0-ice-cream-sandwich

我想Holo.Light在支持它的设备上使用主题,然后回到Light其他设备上的常规主题.

目前,引用Holo.Light在3.0+上工作正常,但较旧的API只是恢复到默认的"黑暗"主题.我可以通过样式继承来实现我想要的吗?

Ara*_*cem 183

您必须创建自定义主题并将其保存在某些目录中,以便最终将此主题设置为应用程序的默认主题

首先,在值中添加一个这样的themes.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyAppTheme" parent="@android:style/Theme.Light.NoTitleBar">
        <!-- Any customizations for your app running on pre-3.0 devices here -->
    </style>
</resources> 
Run Code Online (Sandbox Code Playgroud)

然后,在res目录中创建一个名为"values-v11"(Android 3.0+)的目录,并放置一个这样的themes.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyAppTheme" parent="@android:style/Theme.Holo.Light">
        <!-- Any customizations for your app running on 3.0+ devices here -->
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

最后,在res目录中创建一个名为"values-v14"(Android 4.0+)的目录,并创建一个themes.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyAppTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar">
        <!-- Any customizations for your app running on 4.0+ devices here -->
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

使用DeviceDefault,你的应用程序总是在任何公司的任何设备(HTC三星...)中看起来完美,为Android 4添加创建的自定义主题

编辑:三星的界面(TouchWiz)不尊重这个功能,应用程序将在三星的设备上非常难看.它更好的把Holo主题:(

最后在manifest.xml中

 <application
        ...
        android:theme="@style/MyAppTheme">
Run Code Online (Sandbox Code Playgroud)

  • 请记住投票并接受答案! (2认同)