How to deal with Phones of different screen size?
deepak - Sun Feb 26 2012 23:19:51 GMT-0500 (EST)
Screen Size difference causes issues in Application
Screen Size difference causes issues in Application
deepak - Sun Feb 26 2012 23:26:58 GMT-0500 (EST)
Familiarize the Key Terms
Screen size Actual physical size, measured as the screen's diagonal. For simplicity, Android groups all actual screen sizes into four generalized sizes: small, normal, large, and extra large. Screen density The quantity of pixels within a physical area of the screen; usually referred to as dpi (dots per inch). For example, a "low" density screen has fewer pixels within a given physical area, compared to a "normal" or "high" density screen. For simplicity, Android groups all actual screen densities into four generalized densities: low, medium, high, and extra high. Orientation The orientation of the screen from the user's point of view. This is either landscape or portrait, meaning that the screen's aspect ratio is either wide or tall, respectively. Be aware that not only do different devices operate in different orientations by default, but the orientation can change at runtime when the user rotates the device. Resolution The total number of physical pixels on a screen. When adding support for multiple screens, applications do not work directly with resolution; applications should be concerned only with screen size and density, as specified by the generalized size and density groups. Density-independent pixel (dp) A virtual pixel unit that you should use when defining UI layout, to express layout dimensions or position in a density-independent way.
deepak - Sun Feb 26 2012 23:29:07 GMT-0500 (EST)
Generalized Screen Sizes for Android
small normal large xlarge These are deprecated from API level 13
deepak - Sun Feb 26 2012 23:31:57 GMT-0500 (EST)
Screen Size and Resolution
xlarge screens are at least 960dp x 720dp large screens are at least 640dp x 480dp normal screens are at least 470dp x 320dp small screens are at least 426dp x 320dp
deepak - Sun Feb 26 2012 23:35:06 GMT-0500 (EST)
What are Configuration Qualifiers?
deepak - Sun Feb 26 2012 23:35:57 GMT-0500 (EST)
A configuration qualifier is a string that you can append to a resource directory in your Android project and specifies the configuration for which the resources inside are designed
deepak - Sun Feb 26 2012 23:42:58 GMT-0500 (EST)
How to use Configuration Qualifiers?
- Create a new directory in your project's res/ directory and name it using the format: <resources_name>-<qualifier>
You can use more than one <qualifier> at a time? simply separate each qualifier with a dash.
- <resources_name> is the standard resource name (such as drawable or layout).
- <qualifier> is a configuration qualifier from table 1, below, specifying the screen configuration for which these resources are to be used (such as hdpi or xlarge).
- Save the appropriate configuration-specific resources in this new directory. The resource files must be named exactly the same as the default resource files.
deepak - Sun Feb 26 2012 23:48:50 GMT-0500 (EST)
Screen characteristic Qualifier Description Size
Resources for small size screens.
Resources for normal size screens.
(This is the baseline size.)
Resources for large size screens.
Resources for extra large size screens. Density
Resources for low-density (ldpi)
Resources for medium-density (mdpi)
(This is the baseline density.)
Resources for high-density (hdpi)
Resources for extra high-density (xhdpi)
Resources for all densities. These are
The system does not
scale resources tagged with this qualifier,
regardless of the current screen's density.
Resources for screens somewhere between
mdpi and hdpi; approximately 213dpi. This is not
considered a "primary" density group. It is mostly
intended for televisions and most apps shouldn't
need it?providing mdpi and hdpi resources is
sufficient for most apps and the system will
scale them as appropriate. If you find it necessary
to provide tvdpi resources, you should size them
at a factor of 1.33*mdpi. For example,
a 100px x 100px image for mdpi screens
should be 133px x 133px for tvdpi.
Resources for screens in the landscape
orientation (wide aspect ratio).
Resources for screens in the portrait
orientation (tall aspect ratio).
Resources for screens that have a
significantly taller or wider aspect ratio
(when in portrait
or landscape orientation, respectively) than
the baseline screen configuration.
Resources for use screens that have an
aspect ratio that is similar to the baseline screen
deepak - Sun Feb 26 2012 23:51:57 GMT-0500 (EST)
How to handle layouts for Devices with different screen size?
1) As a practice try not to hard code any width/height properties to an absolute value. 2) Create different layout folders for different sizes. res/layout/my_layout.xml // normal screen size ("default") res/layout-small/my_layout.xml // small screen size res/layout-large/my_layout.xml // large screen size res/layout-xlarge/my_layout.xml //extra large screen size
deepak - Sun Feb 26 2012 23:53:06 GMT-0500 (EST)
How to handle images with different Density?
1) Create different drawable folders for different densities. res/drawable-mdpi/my_icon.png // medium density res/drawable-hdpi/my_icon.png // high density res/drawable-xhdpi/my_icon.png // extra high density
deepak - Sun Feb 26 2012 23:54:19 GMT-0500 (EST)
How to add the layout for Tablets?
Add the layouts to the layouts-xlarge folder.