webapp之手机屏幕分辨率

做手机应用,最痛苦的就是适配,适配就涉及到分辨率之类的问题。

今天就我已经了解到的只是和领域和大家分享下。

我们通常所说的分辨率,就是手机的宽和高分别能够显示的像素数。

分辨率:分辨率(resolution)就是屏幕的精密度,是指显示器所能显示的像素的多少。
比如:iphone5 分辨率6401136,也就是宽可以显示640个像素点,高显示1136个像素点。总的像素点是6401136 = 727040个 。js获取屏幕分辨率方法,window.screen.width 、window.screen.height
宽度:x方向显示的像素数,width,以window.screen.width获取;
高度:y方向显示的像素数,height,以window.screen.height获取;

设备独立像素(device-independent pixels (dips)):即移动设备的显示像素,如iphone的设备宽度和高度为320568而非6401136;

由此衍生出设备宽度(Device-width)和设备高度(Device-height)。
比如iphone 5,设备高度568px、设备宽度320px。ios通常的设备宽度是320px,而android设备宽度主流为320px,也存在360px、400px等。这也为android适配带来了巨大的麻烦。

在iphone 4s之后,出现一个retina概念。这个概念,实际是iphone自己提出来的,他并不是一个标准。

那什么是retina?就要涉及到上面说的设备宽度了。

device-pixel-ratio:width/device-width,即上面说的的缩放比例值。device-pixel-ratio大于等于2时,就是苹果所称的retina了。也就是一个显示像素宽度,可以装下2个像素以上。也就是所说的一个像素点可以放4个像素点的内容。

现在很多手机早已经实现retina了,比如魅族2,4.4寸(720px1280px),小米2,4.3寸(720px1280px)。都已经是retina屏幕。

目前,可以通过window.devicePixelRatio查询device-pixel-ratio。

此外,在讲一个我不太熟悉的概念。

PPI/DPI:PPI有时也叫DPI,表示的是每英寸所拥有的像素(pixel)数目,数值越高,即代表显示屏可以显示高密度像素。计算方式(以iphone4 为例)

Mou icon

由上图可知,PPI在120-160之间的手机被归为低密度手机,160-240被归为中密度,240-320被归为高密度,320以上被归为超高密度。

现在的主流手机,都已经在高密度和超高密度上上。

今天同事们在折腾android的ui切图,我还不太了解,拿这些已经积累的只是,和大家分享下。