【问题标题】:Selecting a different layout directory based on screen Height根据屏幕高度选择不同的布局目录
【发布时间】:2018-06-02 10:44:22
【问题描述】:

在我的应用程序中,layout 必须具有一定的外观,但这在许多不同的屏幕分辨率和密度下很难实现。我已阅读开发者文章,并尽我所能通过创建以下layout 文件来支持许多不同的屏幕:

但是,4.7" 手机(1920x1080) 和 5.8" 手机(比如我的 s8:1080x2220)使用相同的 layout-sw360dp 目录。由于屏幕高度分辨率的差异,两个手机的 ui 元素都无法正确显示。我想知道我应该如何解决这个问题,我可以使用另一个qualifier 让android studio 根据手机的高度或其他东西选择合适的layout 目录吗?我开始迷失在这里。欢迎任何帮助

【问题讨论】:

  • 请访问这个SO question,那里引用了很多资源。
  • @CoolGuyCG 很抱歉,我读过这样的帖子,但它们对我帮助不大。它们太笼统了。我需要根据分辨率来区分选择哪种布局,而不仅仅是 dp 等。

标签: android xml android-layout android-studio


【解决方案1】:

在深入挖掘之后,我发现您可以根据来自DisplayMetrics 的信息在onCreate() 方法中选择不同的layouts,如下所示:

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width=dm.widthPixels;
int height=dm.heightPixels;

if (...) {
    setContentView(R.layout.ex1);
} else {
   // .....
}

通过使用height 和width 变量作为if 语句中的条件,我设法为每种屏幕尺寸选择了合适的layout 文件!

【讨论】:

    猜你喜欢
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多