Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7682545
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T18:35:35+00:00 2026-05-31T18:35:35+00:00

I have an app that I want to develop for Android 2.1, 2.2, 2.3.3,

  • 0

I have an app that I want to develop for Android 2.1, 2.2, 2.3.3, 3.0/3.1 and 4.0.x. Between those API levels, there are about 3 different types of Themes. The latest 4.0.x theme is Holo.

Anyways, I want my app to use the default Android theme for whatever device it’s on. If it’s on a 4.0.x device, I want it to use Holo. If it’s on 2.3.3 I want it to use the theme from that version of Android. etc…

Is there a simple way to approach this? I noticed that with 4.0, they added a Theme.DeviceDefault theme that you can use, but this doesn’t help me for older API levels. What is the best approach to this?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-31T18:35:36+00:00Added an answer on May 31, 2026 at 6:35 pm

    There are currently up to 3, sometimes 4 Themes available for Android devices (.Light variations and similar not included)

    Theme

    Theme

    the default for the earliest versions of Android up to 2.3 Gingerbread(10), including some minor style changes in those versions


    Theme.Holo

    Theme.Holo

    introduced with Android 3.0 Honeycomb (11)


    Theme.Material

    Theme.Material

    new in Android 5.0 Lollipop (21)


    Theme.DeviceDefault

    (Could be anything)

    introduced with 4.0 Ice Cream Sandwich (14), a theme that can be customized by the device manufacturer. It represents the native look of the device – i.e. Holo or Material on Nexus devices (& in Android Studio’s design editor), maybe something custom on other devices. In case "something custom" isn’t an option, those devices must come with the stock themes. Apps that want the stock theme have to specify it though.


    What is the best approach to this?

    No theme + targetSdkVersion >= 14

    The simplest, but not necessarily best option is to define no theme at all. Android will then select the default for you. But Android does not want to surprise your app with themes you’re not expecting so it falls back to the Theme you probably had designed your app for. It does so by looking at the android:targetSdkVersion within AndroidManifest.xml (which can nowadays be set via gradle).

    • Apps that target old platforms, which had only Theme (i.e. API levels 3-10), will get only Theme.
    • Apps targeting 11-13 get Theme.Holo.
    • 14 or above will get Theme.DeviceDefault.

    Since this is just for backwards compatibility, you won’t get Theme.Material on your old Gingerbread phone. Therefore no theme + target 14+ = device default.

    Specifying different themes

    Android’s resource overlay system allows to specify styles based on device API level. For example different versions of a style in res/values-v11 and res/values-v21. This is also what any newly created apps via Android Studio will setup for you.

    As an example, the most basic setup for a .Light themed app looks like this:

    /res/values/styles.xml is applied to every device and serves as base

    <resources>
        <style name="AppTheme" parent="android:Theme.Light"/>
    </resources>
    

    /res/values-v11/styles.xml is loaded on all devices that have API level 11 and above (including those that are 21 and above). But just the newest version of "AppTheme" is actually used.

    <resources>
        <style name="AppTheme" parent="android:Theme.Holo.Light"/>
    </resources>
    

    /res/values-v21/styles.xml

    <resources>
        <style name="AppTheme" parent="android:Theme.Material.Light"/>
    </resources>
    

    Note: alternatively specifying Theme.DeviceDefault in /res/values-v14/styles.xml should be enough for having a default look but that doesn’t allow to fine tune the design. Doesn’t hurt to add the v14 override. DeviceDefault and Holo could be different after all.


    AndroidManifest.xml is the place where the custom theme is put to use. E.g. as application wide default:

    ...
    <application
        android:theme="@style/AppTheme"
        ...
    

    Links to official documentation

    Select a theme based on platform version – Official doc for defining different styles via resource configurations

    Holo Everywhere – blog post that explains the default mechanism and DeviceDefault / Holo theme

    Using the Material Theme – material documentation

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am starting to develop an Android app and I have seen that in
I want to develop an Android app that will fetch geo-tagged tweets from Twitter
I want to develop an App that requires wired communication between Web cam type
I have a client that want to have us develop an app that will
I have an app that I want to be launchable either explicitly when tapped
I have a standalone Java app that has some licensing code that I want
I have two screens on my app that I want to present to users,
I have a single Rails 2.2.2 app that I want to 'share' with multiple
I have a rails app that I'm going to host on engineyard and want
Say you have an app, that you want to provide users ability to browse

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.