怎样获取Android手机屏幕的大小

怎样获取Android手机屏幕的大小,第1张

有两种方式:(获取到的大小准确度与手机的类型有关,google手机你还需要加上底部栏)

1

WindowManager wm = (WindowManager) getContext()

getSystemService(ContextWINDOW_SERVICE);

int width = wmgetDefaultDisplay()getWidth();

int height = wmgetDefaultDisplay()getHeight();

2

WindowManager wm = thisgetWindowManager();

int width = wmgetDefaultDisplay()getWidth();

int height = wmgetDefaultDisplay()getHeight();

一般来说在移动浏览器上是拿不到屏幕真实分辨率的,因为页面渲染是在一个叫viewport的页面绘制区域内(说的通俗点就是手机浏览器是用一个虚拟的屏幕来显示网页的)。viewport和屏幕的真实尺寸并不是对应的,如在Safari Mobile中viewport默认宽度(320px)是屏幕真实尺寸(640px)的一半,这里不管是用windowinnerHeight还是windowscreenwidth拿到的都是320px。当然我们可以通过meta设置改变viewport的比例,如initial-scale=5就可以让viewport和屏幕一致的尺寸,但这个比例在不同的手机上并不一定是2倍关系,特别是Android手机,在大屏手机(5寸以上)上这个值是3倍甚至4倍。而且改变viewport比例后可能会导致后续制作中出现一系列问题。所以我认为不要纠结一定要拿到屏幕真实尺寸,就把viewport的尺寸当成屏幕的尺寸进行页面设计和制作肯定是没有问题的。

有一个非常曲线的解决办法,就是:css的媒体查询(@media)是能够检测屏幕尺寸(其实是浏览器窗体的真实尺寸,并不是屏幕的真实物理尺寸,介意的朋友就不要看了)的,通过它来给网页内的某个元素设置一个特殊的属性,然后再用JavaScript来获取这个属性值。当然这样只能获得一个阶梯值(比如480px到540px之间、540px到600px之间等等),不是精确值,所以可能得不偿失,因此我是不推荐的。

documentdocumentElementclientWidth;

documentdocumentElementclientHeight;

这个得到的是设备像素可见宽高,比如iPhone 4s在微信内设置了viewport为1的时候为320416(手机480 - 微信状态栏64), iPhone 5里为320504

Android系统中可以在viewport设置target-densitydpi=device-dpi让viewport的尺寸和屏幕真实尺寸保持一致

下面的代码即可获取屏幕的尺寸: 在一个Activity的onCreate方法中,编写以下代码: DisplayMetrics metric = new DisplayMetrics(); getWindowManager()getDefaultDisplay()getMetrics(metric); int width = metricwidthPixels; // 宽度(PX) int height = metricheightPixels; // 高度(PX) float density = metricdensity; // 密度(075 / 10 / 15) int densityDpi = metricdensityDpi; // 密度DPI(120 / 160 / 240) 需要注意的是,在一个低密度的小屏手机上,仅靠上面的代码是不能获取正确的尺寸的。 所以,需要在工程的AndroidManifestxml文件中,加入supports-screens节点,如下: <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:resizeable="true" android:anyDensity="true" /> 这样当前的Android程序就支持了多种分辨率,那么就可以得到正确的物理尺寸了。

手机的屏幕大小是根据屏幕对角线的大小来计算的,我们可以通过量取屏幕的长度来确定手机有多长,然后再将这个长度换算为尺寸,254厘米 = 1 英寸。

除了实地测量,还可以从官方的手机数据可以找到该手机的数据,例如华为mate40pro,在浏览器搜索官方然后点击华为mate40pro搜索,选择进入参数之中可以找到该数据为676英寸,这个是官方公布的数据,基本上都是根据实际测量精准,如果会出现其他的因素影响例如显示屏采用圆角设计,按照标准矩形测量时,屏幕的对角线长度是676英寸会导致实际可视区域略小的结果,这些都是非常正常的。

如果不确定圆角手机的尺寸话,还可以试一试量取手机的长度和宽度,然后进行计算直角三角形对角线计算即可完成计算。

以上就是关于怎样获取Android手机屏幕的大小全部的内容,包括:怎样获取Android手机屏幕的大小、用javascript 怎样才能很好的获取手机的屏幕宽度和高度、怎样用 JavaScript 准确获取手机屏幕的宽度和高度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9489033.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存