5

iPhone 4s 的分辨率为 640 x 960 像素,但http://www.whatismyscreenresolution.com/显示为320 x 480 像素。谁能描述一下这个区别?

4

4 回答 4

9

当然,该网站实际上并不知道您设备的物理分辨率。它通过 JavaScript 要求操作系统检索分辨率。在 iOS 上,这有点奇怪:所有与图形相关的框架和库都以“点”为单位测量大小,在非视网膜设备上一个点是一个像素,但在视网膜设备上一个点是两个像素。

例如,如果你问UIKit同样的事情,你会得到相同的结果。在 iPhone 4 和 4S 上,[[UIScreen mainScreen] bounds].size也将返回 320 x 480 - 以磅为单位的大小。

在 JavaScript 中,您可以通过乘以window.devicePixelRatio属性来获得正确的分辨率:

var scale = window.devicePixelRatio;
window.alert(screen.width * scale + "px x " + screen.height * scale + "px");

在本机代码中,您可以通过乘以得到物理尺寸[UIScreen mainScreen].scale

CGSize size;
size.width = [UIScreen mainScreen].scale * [UIScreen mainScreen].bounds.size.width;
size.height = [UIScreen mainScreen].scale * [UIScreen mainScreen].bounds.size.height;
NSLog(@"%@", NSStringFromCGSize(size));

此外,您还要求用于检测 Retina 显示器的 CSS3 媒体查询:

<link rel="stylesheet" type="text/css" href="foo.css" media="only screen and (-webkit-min-device-pixel-ratio: 2)" />
于 2013-03-16T16:42:48.953 回答
1

首先是屏幕分辨率每个现代 LCD 屏幕都使用像素(即微小的方形或矩形点)来显示屏幕信息(文本、图片等)。每个显示器都有一个分辨率,即像素的度量。通常分辨率显示为“640×480”,这意味着有 640 像素,向下 480 像素。将这些数字相乘,您将得到像素总数。有一组标准分辨率,由一系列字母指定,例如 VGA、WVGA、XGA 等

一种分辨率比另一种更好吗?这取决于。作为一般规则,如果您查看两个相同尺寸的屏幕,其中一个的分辨率比另一个高,则分辨率较高的屏幕看起来会更清晰,因为它有更多的像素构成您看到的图像。但是,除非对系统字体大小进行了更改,否则所述高分辨率屏幕上的文本会显得更小。HTC 已确保在其所有更高分辨率的设备(如 Touch Diamond、Pro 和 HD)上提高系统字体大小,以提高可读性,简单的人可以通过描述黑白屏幕和浏览器差异的最佳方式来理解解析度

于 2013-03-16T17:10:15.970 回答
1

它的分辨率为 640 x 960 像素,分辨率为 320 x 480。这与 Retina 显示屏有关。在 Retina 显示器上,每点有 4 个像素 (2x2),而在普通屏幕上,每点只有 1 个像素。

于 2013-03-16T16:42:41.037 回答
0

报告比较

浏览器宽度/高度和监视器分辨率:这些报告不一样,因为浏览器宽度/高度只是浏览器窗口中的可视区域。显示器分辨率是整个屏幕,与滚动条或浏览器窗口大小无关。单击以下按钮以查看您的浏览器宽度/高度和显示器分辨率:

测试分辨率

浏览器宽度/高度和屏幕宽度/高度:这些报告相互排斥,因为浏览器宽度/高度专门针对非移动设备,而屏幕宽度/高度专门针对移动设备。显示器分辨率和屏幕尺寸:虽然这两个报告在本质上显示相同的东西,但它们也是相互排斥的。监视器分辨率专门针对非移动设备报告,屏幕尺寸专门针对移动设备报告。

在线工具

浏览器宽度:浏览器可视区域的宽度(以像素为单位)。它考虑了滚动条,并且会在窗口大小发生变化时发生变化。这个数字是使用 IE 的 javascript 方法 document.body.offsetWidth 和所有其他浏览器的 window.innerWidth 计算的。

浏览器高度:浏览器可视区域的高度(以像素为单位)。它考虑了标题栏和书签栏,并且可以在更改窗口大小时进行更改。这个数字是使用 IE 的 javascript 方法 document.body.offsetHeight 和所有其他浏览器的 window.innerHeight 计算的。

监视器分辨率:整个监视器的宽度和高度(以像素为单位),与浏览器大小无关。它是使用 javascript 方法 screen.width 和 screen.height 计算的。

屏幕尺寸:仅用于移动报告。它基于移动设备的用户代理字符串,其中引用包含每个设备的屏幕尺寸的查找表。

屏幕宽度:仅用于移动报告。与屏幕尺寸相同,只是此报告仅引用设备的屏幕宽度。

屏幕高度:仅用于移动报告。与屏幕尺寸相同,只是此报告仅引用设备的屏幕高度。

于 2020-06-15T04:50:08.397 回答