Android 获取手机屏幕高度 getMetrics和getRealMetrics的区别

Android 获取手机屏幕高度 getMetrics和getRealMetrics的区别,第1张

先说正确的获取屏幕高度方式

使用以下的方法去获取获取应用的屏幕高度

此处通过 getMetrics() 获取的高度其实是去除了虚拟按键后的高度。所以和手机的实际屏幕高度可能有差异

getReaMetrics() 则是真正原始的屏幕尺寸

导入 import 'dart:ui';

1获取  windowplatformBrightness 的值  如果是 Brightnesslight 代表是正常模式, 如果是Brightnessdark代表是暗黑模式

2获取屏幕宽高

final double screenWidth = windowphysicalSizewidth/windowdevicePixelRatio;

final double screenHeight = windowphysicalSizeheight/windowdevicePixelRatio;

本篇主要介绍Web环境中屏幕、浏览器及页面的高度、宽度信息。

1介绍:介绍页面的容器(屏幕、浏览器及页面)、物理尺寸与分辨率、展示等内容。

2屏幕信息:介绍屏幕尺寸信息;如:屏幕、软件可用以及任务栏的高度和宽度。

3浏览器信息:介绍浏览器尺寸信息;如:浏览器、内部页面以及工具栏的高度和宽度。

4页面信息:介绍HTML页面尺寸信息;如:body总的、展示的高度和宽度。

一个页面的展示,从外到内的容器为:屏幕、浏览器以及页面本身。

HTML元素展现在页面内,页面展现在浏览器内,而浏览器展现在屏幕内。

通过Js的一些对象可以获取这些容器的高度、宽度。

容器的尺寸是指当前分辨率下的高度、宽度,而不是物理高度、宽度。

如:一个22寸的显示器,屏幕分辨率为1366 768,那么获取到的屏幕高度为1366px,宽度为768px。

screenheight : 屏幕高度。

screenwidth : 屏幕宽度。

screenavailHeight : 屏幕可用高度。即屏幕高度减去上下任务栏后的高度,可表示为软件最大化时的高度。

screenavailWidth : 屏幕可用宽度。即屏幕宽度减去左右任务栏后的宽度,可表示为软件最大化时的宽度。

任务栏高/宽度 : 可通过屏幕高/宽度 减去 屏幕可用高/宽度得出。如:任务栏高度 = screenheight - screenavailHeight 。

windowouterHeight : 浏览器高度。

windowouterWidth : 浏览器宽度。

windowinnerHeight : 浏览器内页面可用高度;此高度包含了水平滚动条的高度(若存在)。可表示为浏览器当前高度去除浏览器边框、工具条后的高度。

windowinnerWidth : 浏览器内页面可用宽度;此宽度包含了垂直滚动条的宽度(若存在)。可表示为浏览器当前宽度去除浏览器边框后的宽度。

工具栏高/宽度 : 包含了地址栏、书签栏、浏览器边框等范围。如:高度,可通过浏览器高度 - 页面可用高度得出,即:windowouterHeight - windowinnerHeight。

bodyoffsetHeight : body总高度。

bodyoffsetWidth : body总宽度。

bodyclientHeight : body展示的高度;表示body在浏览器内显示的区域高度。

bodyclientWidth : body展示的宽度;表示body在浏览器内显示的区域宽度。

滚动条高度/宽度 : 如高度,可通过浏览器内页面可用高度 - body展示高度得出,即windowinnerHeight - bodyclientHeight。

先抄一下网上对vh和vw的解释:

vh and vw:相对于视口的高度和宽度,而不是父元素的(CSS百分比是相对于包含它的最近的父元素的高度和宽度)。1vh 等于1/100的视口高度,1vw 等于1/100的视口宽度。

比如:浏览器高度950px,宽度为1920px, 1 vh = 950px/100 = 95 px,1vw = 1920px/100 =192 px。

开发准备:

1 首先确认大屏尺寸,比如:3000x1500;

2 确认尺寸之后就可以在全局css文件globelscss中,设置两个变量:$w和$h

$w: 100/3000

$h: 100/1500

3 需要引用该变量的css文件中引入全局css文件;

@import "@common/css/globelscss";

4 要给某div设置宽度和高度

根据设计图效果,比如设计图上该div宽高:300x200

5 设置如下样式:

width:$w300vw;

height:$h200vh;

6 其他所有样式均以此类推;可适应不同分辨率大小的屏幕。

问题一:js 中怎么获取当前屏幕的宽度 documentdocumentElementclientWidth 这个方法返回页面在当前窗口中可见部分的宽度(不包括滚动条宽度);

windowinnerWidth 这个方法返回页面在当前窗口中可见部分宽度(包括滚动条宽度);

windowouterWidth 返回浏览器窗口自身宽度,包括菜单和边框;

screenwidth 返回设备的(屏幕宽度)

问题二:js网页如何获取手机屏幕宽度 ]@]@]

@sssss

var x = navigator;

var w=windowinnerWidth

|| documentdocumentElementclientWidth

|| documentbodyclientWidth;

var h=windowinnerHeight

|| documentdocumentElementclientHeight

|| documentbodyclientHeight;

documentgetElementById(p1)innerHTML=屏幕分辨率:+screenwidth + + screenheight+内部窗口: + w + + h

不知道是不是这个 屏幕分辨率 :pc上的桌面分辨率 。手机上是 一个型号固定的分辨率比如

华为8813的分辨率是480854。。 内部窗口是 改变窗口大小刷新一下就有新的数据

问题三:用javascript 怎样才能很好的获取手机的屏幕宽度和高度 一般来说在移动浏览器上是拿不到屏幕真实分辨率的,因为页面渲染是在一个叫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之间等等),不是精确值,所以可能得不偿失,因此我是不推荐的。

问题四:如何获得当前屏幕的高度 windowonload = function(){ 获取屏幕高度 documentdocumentElementclientHeightconsolelog(documentdocumentElementclientHeight); 获取屏幕宽度 documentdocumentElementclientWidthconsolelog(documentdocumentElementclientWidth);}

问题五:html中 如何获取屏幕宽度 把以下这段代码放到之间或之间预览即可看到数据

/将获取的值存到变量里/

width_screen=screenwidth;

height_screen=screenheight;

availWidth_screen=screenavailWidth;

availHeight_screen=screenavailHeight;

colorDepth_screen=screencolorDepth;

/end/

/输出值/

documentwrite(你的屏幕宽为:+width_screen+

你的屏幕高为:+height_screen+

你的屏幕可用宽为:+availWidth_screen+

你的屏幕可用高为:+availHeight_screen+

你的颜色设置所有为数为:+colorDepth_screen);

/end/

问题六:怎么用jquery来获取屏幕的宽度和高速 $(window)width();$(window)height();严格来说,获取window才对

问题七:javascript怎么获取屏幕大小 1

2

3

4

5

6

7

8

9

windowonload = function(){

获取屏幕高度 documentdocumentElementclientHeight

consolelog(documentdocumentElementclientHeight);

获取屏幕宽度 documentdocumentElementclientWidth

consolelog(documentdocumentElementclientWidth);

}

问题八:PHP怎么获取屏幕的宽度与高度? 10分 PHP是无法获取屏幕的高度和宽度的,你可以用JS来获取

Javascript:

网页可见区域宽: documentbodyclientWidth网页可见区域高: documentbodyclientHeight网页可见区域宽: documentbodyoffsetWidth (包括边线的宽)网页可见区域高: documentbodyoffsetHeight (包括边线的高)网页正文全文宽: documentbodyscrollWidth网页正文全文高: documentbodyscrollHeight网页被卷去的高: documentbodyscrollTop网页被卷去的左: documentbodyscrollLeft网页正文部分上: windowscreenTop网页正文部分左: windowscreenLeft屏幕分辨率的高: windowscreenheight屏幕分辨率的宽: windowscreenwidth屏幕可用工作区高度: windowscreenavailHeight屏幕可用工作区宽度: windowscreenavailWidth

JQuery:

$(document)ready(function(){alert($(window)height()); 浏览器当前窗口可视区域高度alert($(document)height()); 浏览器当前窗口文档的高度alert($(documentbody)height());浏览器当前窗口文档body的高度alert($(documentbody)outerHeight(true));浏览器当前窗口文档body的总高度 包括border padding marginalert($(window)width()); 浏览器当前窗口可视区域宽度alert($(document)width());浏览器当前窗口文档对象宽度alert($(documentbody)width());浏览器当前窗口文档body的宽度alert($(documentbody)outerWidth(true));浏览器当前窗口文档body的总宽度 包括border padding margin})

问题九:怎样用 JavaScript 准确获取手机屏幕的宽度和高度 屏幕分辨率的高:windowscreenheight

屏幕分辨率的宽:windowscreenwidth

网页可见区域宽:documentbodyoffsetWidth

网页可见区域高:documentbodyoffsetHeight

问题十:Android开发 怎样获取屏幕的宽高是多少厘米 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸

下面的代码即可获取屏幕的尺寸。

在一个Activity的onCreate方法中,写入如下代码:

[java] view plain copy print

DisplayMetrics metric = new DisplayMetrics();

getWindowManager()getDefaultDisplay()getMetrics(metric);

int width = metricwidthPixels; 屏幕宽度(像素)

int height = metricheightPixels; 屏幕高度(像素)

float density = metricdensity; 屏幕密度(075 / 10 / 15)

int densityDpi = metricdensityDpi; 屏幕密度DPI(120 / 160 / 240)

DisplayMetrics metric = new DisplayMetrics();

getWindowManager()getDefaultDisplay()getMetrics(metric);

int width = metricwidthPixels; 屏幕宽度(像素)

int height = metricheightPixels; 屏幕高度(像素)

float density = metricdensity; 屏幕密度(075 / 10 / 15)

int densityDpi = metricdensityDpi; 屏幕密度DPI(120 / 160 / 240)

但是,需要注意的是,在一个低密度的小屏手机上,仅靠上面的代码是不能获取正确的尺寸的。比如说,一部240x320像素的低密度手机,如果运行上述代码,获取到的屏幕尺寸是320x427。因此,研究之后发现,若没有设定多分辨率支持的话,Android系统会将240x320的低密度(120)尺寸转换为中等密度(160)对应的尺寸,这样的话就大大影响了程序的编码。所以,需要在工程的AndroidManifestxml文件中,加入supports-screens节点,具体的内容如下:

[html] view plain copy print

>

最后这两句只是 获取屏幕 的坐标x2 和 y2 数值,

Scrx = PluginSysGetScRX //得到当前屏幕宽度

Scry = PluginSysGetScRY //得到当前屏幕高度

因为全屏找图的x1 和 y1 刚好都等于 0

其实很简单的,

TracePrint 找图(0, 0, Scrx, Scry, 路径, , 09)

您把 0 , 0, 换成你所谓的区域开始位置坐标 x1 y1 ,

Scrx 和 Scry 的数值换为 你需要的终止位置坐标 x2 和 y2就行了

比如换成下面这样:

TracePrint 找图(20, 20, 200, 200, 路径, , 09)

需要4个数值,包括起点坐标x1 y1 两个 和 终点的 x2 y2 两个懂了吗?

你用这个软件内置功能应该能找到鼠标坐标数值。

1、首先创建或者打开我们的web项目,新建一个html文件和css文件即可,如图所示。

2、html页面代码如图所示,定义一个div,然后给一个id属性即可。

3、这里是使用宽度的百分比之后,设置高度值为零,然后使用padding属性的top或者bottom的值(可以是任意百分比),背景颜色作为测试。

4、然后在浏览器运行之后的效果是这样的哦,放大缩小浏览器,宽高会随之改变。

5、这个方法是使用expression来设置高度即可。

CSS搞定不了,设定百分比是不能兼容所有浏览器的,所有高度不要使用%

你试着调用后台脚本吧,通过后台获取屏幕或者浏览器高度,然后给标签赋值

因为公司项目需要赋值的情况很多,这方面的事情都是交给程序员做的,我们做设计的一般不考虑怎么获取的

以上就是关于Android 获取手机屏幕高度 getMetrics和getRealMetrics的区别全部的内容,包括:Android 获取手机屏幕高度 getMetrics和getRealMetrics的区别、Flutter 获取是否是暗黑模式,屏幕宽度,屏幕高度、HTML 获取屏幕、浏览器、页面的高度宽度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存