Currently I have the following resource folders:
1. layout-sw600dp
2. layout-sw600dp-notlong
The idea is that we have 3 types of devices and the devices should use the resources from the correct folder accordingly. The devices are:
1. Samsung Galaxy Tab 10.1, 1280 X 800 mdpi. 16/10
2. Asus Transformer TFT 101, 1280 X 800 mdpi. 16/10.
3. A generic tablet, 800 X 600 ldpi. 4/3.
The problem is that all 3 devices use resources from layout-sw600dp-notlong. To my understanding 4/3 is categorized as -notlong devices.
Is there anything wrong in my identifier usage? Or there's a bug reported for the identifier?
Thank in advance.
According to the source code. (framework/base/core/java/android/content/res/Configuration.java)
// Is this a long screen?
if (((longSizeDp*3)/5) >= (shortSizeDp-1)) {
// Anything wider than WVGA (5:3) is considering to be long.
screenLayoutLong = true;
} else {
screenLayoutLong = false;
}
So if the aspect ratio is wider than 3:5(or 1.667), it will be treated as long screen.
The 'notlong' identifier is for devices that are similar in aspect ratio to baseline devices (see http://developer.android.com/guide/practices/screens_support.html). While the docs are scarce on what baseline devices are, typical resolution of Android devices 1.5~1.6. So what you are seeing is correct.
While there is a 'long' identifier for devices that are longer than baseline ratios, it looks like you can't force resources for devices that are shorter (e.g. 800x600).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With