Some of the important variations that you should consider include different languages, screen sizes, and versions of the Android platform.
> Supporting Different Languages
>To add support for more languages, create additional values
directories inside res/
that include a hyphen and the ISO language code at the end of the directory name.
MyProject/ res/ values/ strings.xml values-es/ strings.xml values-fr/ strings.xml
>Android categorizes device screens using two general properties: size and density. (Different Screens)
As such, you should include some alternative resources that optimize your app’s appearance for different screen sizes and densities.
- There are four generalized sizes: small, normal, large, xlarge
- And four generalized densities: low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)
Note: Android 3.2 and above supports an advanced method of defining screen sizes that allows you to specify resources for screen sizes based on the minimum width and height in terms of density-independent pixels.MyProject/ res/ layout/ # default (portrait) main.xml layout-land/ # landscape main.xml layout-large/ # large (portrait) main.xml layout-large-land/ # large landscape main.xml
To generate these images, you should start with your raw resource in vector format and generate the images for each density using the following size scale:
- xhdpi: 2.0
- hdpi: 1.5
- mdpi: 1.0 (baseline)
- ldpi: 0.75
MyProject/ res/ drawable-xhdpi/ awesomeimage.png drawable-hdpi/ awesomeimage.png drawable-mdpi/ awesomeimage.png drawable-ldpi/ awesomeimage.png> how to take advantage of the latest APIs while continuing to support older versions as well.( Platform Versions )
Tip: In order to provide the best features and functionality across several Android versions, you should use the Android Support Library in your app, which allows you to use several recent platform APIs on older versions.
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
private void setUpActionBar() { // Make sure we're running on Honeycomb or higher to use ActionBar APIs if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); } }
<activity android:theme="@android:style/Theme.Dialog">
<application android:theme="@style/CustomTheme">