Holo Theme Compatibility Standard on Android ICS Explained
Posted January 4, 2012 at 10:00 am by azrienoch
Adam Powell explained on the Android Developers Blog how to maintain a consistent look on Ice Cream Sandwich between your apps and the general user interface with a line or two of code. And he explains the improvements in ICS to streamline theme porting. The goal here is design consistency wherever possible within a device interface.
He explains that all devices running Android 4.0+ with the Android Market installed will necessarily have the Holo theme installed. That doesn’t mean there will be only one look to ICS devices. It means that all have these streamlining improvements, which are formal separation of theme families in the manifest. You can call on the Holo theme, or DeviceDefault theme, which is the theme you (or a manufacturer looking to differentiate the look of their devices from other manufacturers’ devices) create. Powell says, “Formally separating these theme families will also make future merges easier for manufacturers updating to a new platform version, helping more devices update more quickly.”
The neat thing about ICS forcing the availability of the Holo theme is that that app developers may be certain they maintain the look of their apps across device manufacturers by using the Holo theme. Or, of course, you can choose to make your app consistent with the rest of the system by using DeviceDefault. Lastly, Powell covers supporting themes for your app in older versions of Android using the resource system. “Using Android’s resource system you can define themes for your app that are selected automatically based on the platform version of the device it’s running on.”
But not everyone thinks the added functionality and choice that comes with this change is a good idea. XDA Recognized Developer and Senior Moderator Chainfire said on Twitter, “This change breaks things. If it were made in a non-breaking manner, I would agree.” Chainfire wrote a post on his own blog explaining how to theme an app across Android versions to help developers with whatever the Holo compatibility standard breaks.
What do you think? Let us know in the comments.
Want something on the XDA Portal? Send us a tip!