Is there a easy way to have our application look like ICS or JB?
Mainly the slider and the radio button. They look old when displayed in green.
Any hint about this?
There's a nice package available on github called HoloEverywhere.
One thing though, do not try pass it off as a ICS/JB Application, just because it "looks" like the user interface one would expect to see in a native ICS/JB Android set up.
Best that can be done with the project, is to target the latest SDK to guarantee your wide-market of Android usage, including GB.
Aim high, not low ;)
The best way is to use the Android Library 'Actionbar Sherlock'. This Library uses all native ICS Themes, etc for older devices.
ActionBarSherlock is an extension of the compatibility library designed to facilitate the use of the action bar design pattern across all versions of Android with a single API.
Related
I understand that for Android below 3.0 i need to use ActionBar from v7 support lib
My question is how v7 ActionBar behaves on phones above Android 3.0. Does is use native ActionBar or v7 ActionBar?
I am asking if v7 ActionBar on phones with Android 3.0 and above will be of less quality
(may be less features) than regular ActionBar
Thanks
If you decide to use ActionBarCompat - all your devices will get action bar from compat library. Of course you can have some really tricky API version checks and choose one over another in runtime, but efforts and code complexity just don't worth it. I wouldn't say it is going to be "less quality" since Google guys are really trying hard to make it look the same. Also Im pretty sure list of interfaces is exactly the same as native implementation.
From another hand, there is obviously a risk to hit some nasty bug which is not present (or already fixed) in native implementation, so it is all up to you to take this risk to the benefit of supporting older platforms.
I'm writing an Android App and I'm trying to choose which compatibility library to choose to implement the ActionBar functionality.
I'm trying to choose between two libraries:
GreenDroid : https://github.com/cyrilmottier/GreenDroid
Android-Actionbar: https://github.com/johannilsson/android-actionbar
From what I could gather, AA(Android-Actionbar) seems to be simpler, and easier to style. But GreenDroid has additional features which make it the more powerful solution in general(not just for an Actionbar).
I left out ActionBarSherlock because it also supports fragments, is more complicated.
IF there are others that I missed, please share!
Use ActionBarSherlock.
It is based on ICS code, is actively developed, and will use the native actionbar when run on ICS. It also plays nicely with the compatibility library and will let your use ICS features such as the split action bar and share providers. Probably the biggest plus is that it uses exactly the same API as ICS. If you don't need fragmetns, you certainly don't have to use them.
Green Droid offers a custom look and feel, not exactly consistent with Android UI design guide lines. Android-Actiobnar is based on custom layouts and only offers basic features.
Here's a discussion (might be biased, since it's by the ABS author): http://corner.squareup.com/2012/05/actionbarsherlock-as-a-base.html
The Android-Actionbar is better, for sure.
Couldn't think of any other ones but I am sure there are.
What is an ideal approach when developing apps using android 4.0 and making it work in android 2.3, I have already imported compatibility library and Android Sherlock? on my project?
Should I use the coding practices of 4.0 until my app is in shape before I apply compatibility practices?
OR
I should apply the compatibility practices together with the project's progression (which is kinda hardcore.. for a beginner of the compatibility library like me )?
I would appreciate your opinions.
I may be a bit biased, but by using the Google support library, ActionBarSherlock, and NineOldAndroids you are afforded all of the major new features introduced in Honeycomb to 99% of all devices that have access to the Play Store.
Having easy access to fragments, loaders, the action bar, and the new animation API on Android 2.1+ allows for you to focus on the actual content of your application rather than any API differences.
Action Bar Sherlock is meant to replicate the Android 4.0 experience as closely as possible on legacy systems, so I suggest you use it in that spirit. Try to develop clean Ice Cream Sandwich code, just keep an eye on whether ABS supports it. Most of the time, it will. If it doesn't, find another way. Every time you finish coding up an Activity would probably be a good time to step back and do a quick Gingerbread sanity check.
I'm looking to create a cross-version compatible android tabbed layout.
The problem I'm running into is when implementing Google's example of TabActivity, I get a depreciation notice. The app I'm writing needs to be compatible down to 2.1, and I'm not finding a clear cut way to make it compatible.
I am aware of the versioning by folder (/layout-v4, /layout-v14, etc) but if possible I want to avoid this.
Are fragments the answer here and if so, does the Android Compatibility Layer V4 become the key to solving this problem?
I'd suggest the best approach might be to use the excellent (and free) ActionBarSherlock, so you can add Android 3+ action bar (including tabs) to apps going all the way back to v2.x versions.
I've used it on a few apps and it's pretty easy. I think it's the right approach to use the proper Action Bar interface across platform versions, and they include tabs and replace the whole TabActivity thing, which was pretty horrible anyway.
http://actionbarsherlock.com/
Considering Android Design Guidelines announcement what is the best way to make apps which are compliant with them on Android 2.x phones? E.g. what is the best way to implement the ActionBar pattern?
ActionbarSherlock is a starting point. It includes the compatibility libraries from Google and comes provided as a project rather than JAR offering greater flexibility, should you need to alter anything. Version 4 is on the way which will also include ICS stuff.
As far as I am aware I believe ABS is backward compatible to 1.6, and makes use of the minSdkVersion and targetSdkVersion. It uses an extended version of the holo theme to create a light and dark version that includes the extra ActionBar goodness, which in turn you can extend to style your app.
I recorded a tutorial on YouTube to get people started.
I think it's better to use the compatibilty libraries directly, instead of another library based on those. Additionally, refer to the Google I/O App as stated at the bottom of the first link I gave. You can find the best practices about implementing a UI for several devices with compatibility libraries.
I found ActionBarSherlock to be pretty good. It will emulate ActionBar on older devices and use the native one on modern ones. It's an extension to Android compatibility library - so you will also get fragments and other ICS stuff.