当前我有以下资源文件夹:
1.布局-sw600dp
2.布局-sw600dp-超长
我们的想法是,我们有3种类型的设备,这些设备应该相应地使用正确文件夹中的资源。这些设备是:
1.三星Galaxy Tab 10.11280 X 800 mdpi。16/10
2.华硕变压器TFT 1011280 X 800 mdpi。16/10。
3.一种普通片剂,800 X 600 ldpi。4/3.
问题是,所有3个设备都使用layout-sw600dp-notlong中的资源。据我所知,4/3被归类为-notlong设备。
我的标识符使用有什么问题吗?或者标识符报告了一个错误?
提前感谢。
根据源代码。(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;
}
因此,如果纵横比大于3:5(或1.667),它将被视为长屏幕。
"notlong"标识符用于纵横比与基线设备相似的设备(请参阅http://developer.android.com/guide/practices/screens_support.html)。虽然关于基线设备的文档很少,但Android设备的典型分辨率为1.5~1.6。所以你看到的是正确的。
虽然比基线比率长的设备有一个"长"标识符,但看起来你不能为更短的设备(例如800x600)强制使用资源。
你读过这个文档吗?http://developer.android.com/guide/practices/screens_support.html#DeclaringTabletLayouts