iPhone 4s的分辨率为640 x 960像素,但http://www.whatismyscreenresolution.com/表示320 x 480像素.有谁能描述这种差异吗?
小智 8
当然,该网站实际上并不知道您设备的物理分辨率.它通过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");
Run Code Online (Sandbox Code Playgroud)
在本机代码中,您可以通过乘以[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));
Run Code Online (Sandbox Code Playgroud)
此外,您要求检测Retina显示的CSS3媒体查询:
<link rel="stylesheet" type="text/css" href="foo.css" media="only screen and (-webkit-min-device-pixel-ratio: 2)" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3695 次 |
| 最近记录: |