根据屏幕高度选择不同的布局目录

问题描述 投票:3回答:1

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

layout dirs

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

android xml android-layout android-studio
1个回答
1
投票

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

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

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

通过使用heightwidth变量作为if语句中的条件,我设法为每个屏幕大小选择适当的layout文件!

© www.soinside.com 2019 - 2024. All rights reserved.