Android Resource Qualifiers -sw#dp vs -w#dp

android, android-layout, android-resource-qualifiers

Solution

`sw` is "smallest width". It doesn't change if the device is rotated.

`w`, on the other hand, is available (i.e. current) width.

See Providing Alternative Resources:

smallestWidth - `sw<N>dp` - The smallestWidth is a fixed screen size characteristic of the device; the device's smallestWidth does not change when the screen's orientation changes.

Available width - `w<N>dp` - This configuration value will change when the orientation changes between landscape and portrait to match the current actual width.

Example. Say that you have a device that is 600dp x 400dp.

- If you have a w600dp resource, it will be used in landscape, but not in portrait.

- If you have a sw600dp resource, it will not be used for any orientation (smallest is 400).

Problem

Say I'm developing a different layout for devices with screen size equal to or greater than 600dp. I want to use the post android 3.2 resource qualifiers. I created a folder named `layout-sw600dp` and put my layout there, but at the same time I could have created a folder named `layout-w600dp` and put the layout xml file there. I'm trying to figure out what is the difference between `-sw600dp` and `-w600dp`? After all they are both meant to use the layout for device of width >= 600dp.

Original source