请教各位高手一个android开发的关于如何获取准确的屏幕宽度和高度的问题

请教各位高手一个android开发的关于如何获取准确的屏幕宽度和高度的问题,第1张

>

screenheight单位为像素,screenwidth单位为像素。

documentdocumentElementclientWidth,documentdocumentElementclientHeight。

可以通过三种方式获到屏幕大小:

1、通过WindowManager获取

DisplayMetrics dm = new DisplayMetrics();

getWindowManager()getDefaultDisplay()getMetrics(dm);

Systemoutprintln("heigth : " + dmheightPixels);

Systemoutprintln("width : " + dmwidthPixels);

2、通过Resources获取

DisplayMetrics dm2 = getResources()getDisplayMetrics();

Systemoutprintln("heigth2 : " + dm2heightPixels);

Systemoutprintln("width2 : " + dm2widthPixels);

3、通过Display 获取屏幕的默认分辨率

Display display = getWindowManager()getDefaultDisplay();

Systemoutprintln("width-display :" + displaygetWidth());

Systemoutprintln("heigth-display :" + displaygetHeight());

在实际开发中,React-Native通过调用Dimensionsget('window')去获取全面屏手机(MI 10)的高度时,发现获取到的高度要比实际手机高度来的短一些,针对此种情况对全面屏手机做适配。

首先通过获取屏幕的纵横比来判断当前手机是否为全面屏,常规纵横比为大于18 (16:9)。(这里只做了简单判断,当然也有很多更为准确的方案)

查阅相关资料后发现是因为全面屏的statusBar高度问题。

导包:

定义高和宽并计算纵宽比:

对纵宽比做判断并拿到真实高度(针对安卓):

存疑:

1计算纵宽比,当手机为全面屏时,是否会因为获取到的长度会比实际的少,导致wh(纵宽比)降低,影响后面的判断。

补充:MI 10 取Dimensionsget('window')height 拿到的高度为710左右,屏幕宽度在392,纵宽比计算得181。

2在链接1中认为差一个StatusBar的高度,实际编写中,发现链接2的两个高度较为合理。

补充:全面屏发现小米10 占两个高度 , 另一款全面屏测试机占一个高度

实际测试中发现ios设备如果为全面屏则不需要进行处理 所以这里我们需要加一层判断。

以上就是关于请教各位高手一个android开发的关于如何获取准确的屏幕宽度和高度的问题全部的内容,包括:请教各位高手一个android开发的关于如何获取准确的屏幕宽度和高度的问题、怎样用 JavaScript 准确获取手机屏幕的宽度和高度、怎样获取Android手机屏幕的大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9770077.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存