How to use Holo.Light theme, and fall back to 'Light' on pre-honeycomb devices?

86,091

You have to create a custom theme and save it in some directories to finally set this theme as the default one for the app

First, in values add a themes.xml like this:

<?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> 

Then, create a directory with the name "values-v11" (Android 3.0+ ) in the res directory and put a themes.xml like this

<?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>

Finally, create a directory with the name "values-v14" (Android 4.0+) in the res directory and create a 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>

With the DeviceDefault your app allways look perfect in any device of any company (HTC Samsung ... ) that add created custom themes for Android 4

EDIT: Samsung's interface (TouchWiz) dont respect this feature and the apps will be very ugly on Samsung's devices. Its better put Holo theme :(

Finally in your manifest.xml

 <application
        ...
        android:theme="@style/MyAppTheme">
Share:
86,091

Related videos on Youtube

koi-feeding
Author by

koi-feeding

Updated on July 05, 2022

Comments

  • koi-feeding
    koi-feeding almost 2 years

    I'd like to use the Holo.Light theme on devices that support it, and fall back to the regular Light theme on other devices.

    At the moment, referencing Holo.Light works fine on 3.0+, but older APIs simply revert to the default 'dark' theme. Can I achieve what I want with with style inheritance?

  • l33t
    l33t about 11 years
    @Aracem, what do you mean by "very ugly"? Will it use the old light theme or worse?
  • Aracem
    Aracem about 11 years
    I mean that if you set the theme DeviceDefault in some samsung devices the interface is like "not finished" or blank. Important, I dont know if all the samsung devices with Android 4.0+ has this bug!
  • Luis Mendo
    Luis Mendo almost 11 years
    "All problems in computer science can be solved by another level of indirection" :-)
  • Stan
    Stan over 10 years
    I confirm that Samsung's TouchWiz does not work well with Theme.DeviceDefault. On Galaxy Note my Dialog appears with black text and dark background (so almost unreadable). Furthermore, the app behind the dialog appears completely white.
  • Miles M.
    Miles M. almost 10 years
    I actually can't have it working. I don't know what I'm missin. I've followed these exact instructions but it didn't change anything. worth maybe mentionning that I'm using Phonegap with native dialogs boxes. It displays it in an ugly black dialog boxes that look 5 years old :/
  • Aracem
    Aracem almost 10 years
    Can you tell me what API Version are you targeted? Yoou need to target > than 14 to see this. If this is not the solution perhaps there are something in phonegap or, probably, when you create natively the dialog, remember you have to put the Theme Style to the dialog. Perhaps this can help you stackoverflow.com/questions/18839895/…