>
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手机屏幕的大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)