【问题标题】:How to differentiate layout for 480 * 800 and 480 * 854 screen resolutions in android?如何区分android中480 * 800和480 * 854屏幕分辨率的布局?
【发布时间】:2014-03-14 14:15:55
【问题描述】:

在其中一个应用程序中,我需要确保 UI 组件将放置在所有屏幕分辨率设备中的正确位置。我已经阅读了 android 开发者网站上的支持多屏幕分辨率教程。基于此,我似乎必须为小型、普通和大屏幕设备创建单独的布局文件。现在,问题在于即使在大屏幕中也有不同的分辨率,例如 480 * 800 和 480 * 854。在屏幕中,组件会稍微错位。我将上边距设置为 100 dip 然后 480 * 800 它看起来正确,但对于 480 * 854 它稍微放错了位置。

现在有人可以告诉我如何处理吗?

【问题讨论】:

    标签: android screen resolution


    【解决方案1】:

    这两种分辨率都考虑在layout-long下,所以你必须手动根据设备的高度和宽度设置布局。

    在我看来,这是最好的解决方案。我为我的应用应用了相同的解决方案。

    示例

            DisplayMetrics dm = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(dm);
            height = dm.heightPixels;
            width = dm.widthPixels;
    
            if (height == 854 || width == 480) 
            {
                  // Your view 
            }
            else
            {
                  // Your VIew
            }
    

    您必须在活动的 onCreate() 方法中检查上述条件..

    【讨论】:

    • 嗨,这仍然是 6 年后的最佳解决方案吗?我有同样的问题,所以我的问题
    【解决方案2】:

    应该可以通过以下方式区分 WVGA854 和 WVGA800:

    res/drawable-hdpi-long/ res/drawable-hdpi-notlong/

    但我肯定会建议您设计布局,使其足够健壮,可以为这两个屏幕使用一组布局。在这种情况下,您无法设计一种布局,维护/测试工作量太大。

    【讨论】:

    • 感谢您的回复。但你说的适用于图像。我们是否也可以对 layout-large-long 和 layout-large-notlong 等布局做同样的事情。
    • 对不起,你可以这样做,即 res/layout-hdpi-long 和 res/layout-hdpi-notlong
    • 如果我在 res 中创建这些文件夹,它会给我编译时错误。您是否在任何应用程序中使用过这种方式?
    • 啊抱歉,应该是 res/layout-long-hdpi 和 res/layout-notlong-hdpi。 Chirag 可能是对的,即两种布局都被认为是长的。检查这个stackoverflow.com/questions/1893838/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    相关资源
    最近更新 更多