【问题标题】:Choosing layout folder for supporting all devices选择支持所有设备的布局文件夹
【发布时间】:2015-08-08 05:09:41
【问题描述】:

我遇到了与某些设备的布局文件夹相关的问题。 所以起初我有layoutlayout-large 文件夹。我在这些布局中只有 3 个用于布局的 xml 文件。 layout 文件夹具有使用 Galaxy Nexus 4.65" (720x1280 xhdpi) 的 Eclipse 配置的 xml 文件 layout-large 文件夹包含使用 Eclipse 配置的 5.1" WVGA (800x480 mdpi) 的 xml 文件

我在小型三星 Galaxy Youth 3.3" (320x480) 上对其进行了测试,它使用的是 layout 文件夹...我不太了解屏幕分辨率,我在 google doc 中阅读过,但直到现在我还没有实在看不够。Google Nexus 配置看起来适合小屏幕,所以我在对分辨率或屏幕尺寸没有足够了解的情况下选择了它。不知何故,它很适合我的 Galaxy Youth。

虽然对于大屏幕设备,我依赖于layout-large 文件夹,所以我使用 Galaxy Tab 7" 对其进行了测试。它也很合适。 当我用 Galaxy Note 2 和 Galaxy Note 4 测试它时出现问题 .. (对于我没有测试的其他设备,因为我没有它们)。 Galaxy Note 2 和 Galaxy Note 4 似乎使用layout 文件夹而不是大文件夹(我相信它会很适合我的layout-large)。

我实际上希望 320x480 或更小屏幕尺寸的设备都使用layout,任何具有更大屏幕的设备都应该使用layout-large。如何做到这一点?

【问题讨论】:

    标签: android layout screen


    【解决方案1】:

    您可以使用代码为 DEVICE..IN 的特定最小宽度选择所需的布局

    创建:

       Configuration config = getResources().getConfiguration();
    
        if (config.smallestScreenWidthDp >= 480) {
    
            setContentView(R.layout.main_activity_LARGE);
        } else {
            setContentView(R.layout.main_activity);
        }
    

    文档中提到 (sw NUMBER dp) 格式:“此切换的确切点取决于您的特定设计 — 可能您的平板电脑布局需要 720dp 宽度,可能 600dp 就足够了,或者 480dp 或某个数字在这些之间。” 所以你可以放入 res :

    res/layout/main_activity.xml

    res/layout-sw480dp/main_activity.xml

    【讨论】:

    • 这样使用编程方式安全吗? ,我之前在这里的一个讨论中读到这不是一个好方法。但如果我仍然卡住,我会试一试。
    • 我编辑了我的答案;我没有使用该解决方案,但您可以尝试一下,希望对您有所帮助;
    【解决方案2】:

    看这里:http://stefan222devel.blogspot.sk/2012/10/android-screen-densities-sizes.html 有更多关于安卓设备屏幕尺寸和密度的信息

    【讨论】:

    • 这是一堆重要信息,但对我来说仍然没有意义,因为那里有一些属性,我只关心屏幕大小。无论是小型、中型、大型还是超大型。我只需要根据屏幕大小使用适当的布局。我只使用 1 个可绘制的 mdpi 文件夹。我不使用其他可绘制文件夹。
    猜你喜欢
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    相关资源
    最近更新 更多