Android资源notlong/long标识符不起作用

Maz*_*ziz 8 android screen android-screen

目前我有以下资源文件夹: 1.layout
-sw600dp
2. layout-sw600dp-notlong

我们的想法是我们有3种类型的设备,设备应该相应地使用正确文件夹中的资源.这些设备是:
1.三星Galaxy Tab 10.1,1280 X 800 mdpi.16/10
2.华硕Transformer TFT 101,1280 X 800 mdpi.16/10.
3.通用平板电脑,800 X 600 ldpi.4/3.

问题是所有3个设备都使用来自layout-sw600dp-notlong的资源.根据我的理解,4/3被归类为-notlong设备.

我的标识符使用有什么问题吗?或者是否有针对标识符报告的错误?

预先感谢.

小智 20

根据源代码.(框架/碱/核心/ JAVA /机器人/内容/ 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;
        }
Run Code Online (Sandbox Code Playgroud)

因此,如果纵横比大于3:5(或1.667),则将其视为长屏幕.


ebe*_*nie 6

"notlong"标识符适用于与基线设备的宽高比相似的设备(请参阅http://developer.android.com/guide/practices/screens_support.html).虽然基础设备上的文档很少,但Android设备的典型分辨率为1.5~1.6.所以你看到的是正确的.

虽然设备的"长"标识符比基线比率更长,但看起来您无法为较短的设备(例如800x600)强制使用资源.

  • 这个sdk遗漏是一种耻辱:/ (2认同)