11

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

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

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

我的标识符使用有什么问题吗?还是报告了标识符的错误?

预先感谢。

4

3 回答 3

23

根据源代码。(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),则会被视为长屏。

于 2013-07-29T23:30:51.380 回答
8

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

虽然对于比基线比率更长的设备有一个“长”标识符,但您似乎无法为更短的设备(例如 800x600)强制使用资源。

于 2012-08-01T22:07:25.113 回答
0

你读过这个文档吗? http://developer.android.com/guide/practices/screens_support.html#DeclaringTabletLayouts

于 2012-08-01T04:25:27.620 回答