下面粗略總結(jié)一下iPhone 不同設(shè)備的尺寸和各種分辨率的不同和區(qū)別,有不當(dāng)之處還請指正.
iPhone設(shè)備的屏幕尺寸有多種,屏幕的分辨率也有多種,如下表
| 設(shè)備 | 屏幕尺寸(英寸) | 屏幕分辨率 | 說明 |
|---|---|---|---|
| iPhone4/4s | 3.5 | 640 x 960 | Retain顯示屏,326ppi |
| iPhone5/5s/5c/SE | 4.0 | 640 x 1136 | Retain顯示屏,326.ppi |
| iPhone6/6s/7 | 4.7 | 750 x 1334 | Retain HD顯示屏,326.ppi |
| iPhone6P/6sP/7P | 5.5 | 1080 x 1920 | Retain HD顯示屏, 401ppi |
- 其中 ppi (pixel per inch) 是像素密度單位, 即像素/英寸.
例如: 401ppi 表示每英寸屏幕上有401個像素. - ppi的計算
例如: 以 iPhone 6Plus 為例
屏幕分辨率 1920 x 1080,
屏幕尺寸 5.5 英寸(手機屏幕對角物理線的長度)
屏幕所有像素數(shù)量: √(19202 + 10802) ≈ 2202.9 (像素)
單位英寸像素數(shù)量: 2202.9 ÷ 5.5 ≈ 405.27 (像素/英寸) ≈ 401 ppi - iOS提供了三種分辨率,分別是:
1. 設(shè)計分辨率:
邏輯上的屏幕大小,單位是點。
我們在Interface Builder設(shè)計器中的單位和程序代碼中的單位都是設(shè)計分辨率中的“點”。
2. 資源分辨率:
資源圖片的大小,單位是像素。
3. 是以像素為單位的屏幕大小。所有的應(yīng)用都會渲染到這個屏幕上展示給用戶。
iOS提供了一種考慮分辨率的簡單方式
- 例如,在iPhone5和iPhone6之前,iPhone的屏幕大小為320x480點(請注意:這里的單位是“點”而不是像素)。在此之前,iPhone的屏幕分辨率是320x480像素;自從iPhone4采用了Retina屏幕,iOS設(shè)備的實際分辨率就變成了上述分辨率與縮放因子的乘積。這意味著雖然在小設(shè)備上對元素進行定位時使用的是數(shù)字320x480,但實際的像素個數(shù)可能更多。
- 例如,iPhone 4(s)、5(s) 、6(s)和7的縮放因子為2,那么iPhone 4s的實際分辨率為(320x2)x(480x2)=640x960像素。iPhone 5的屏幕更大,為320x568點,即640x1136像素。不同設(shè)備的三種分辨率如下表所示:
不同設(shè)備的三種分辨率區(qū)別表格
| 設(shè)備 | 屏幕尺寸(英寸) | 設(shè)計分辨率(點) | 屏幕分辨率(像素) | 資源分辨率(像素) | 說明 |
|---|---|---|---|---|---|
| iPhone4/4s | 3.5 | 320 x 480 | 640 x 960 | 640 x 960 | 1點 = 2倍像素,326ppi |
| iPhone5/5s/5c/SE | 4.0 | 320 x 568 | 640 x 1136 | 640 x 1136 | 1點 = 2倍像素,326ppi |
| iPhone6/6s/7 | 4.7 | 373 x 667 | 750 x 1334 | 750 x 1334 | 1點 = 2倍像素,326ppi |
| iPhone6P/6sP/7P | 5.5 | 414 x 736 | 1080 x 1920 | 1242 x 2208 | 1點 = 3倍像素, 資源縮小1.15倍,渲染到屏幕上,401ppi |
- 而至于iPhone 6(s) plus 和 iPhone 7 Plus 更加與眾不同,其縮放因子為3,這意味著屏幕上點每個點都表示9個像素。以點為單位時,含有 414x736 點;在縮放因子為3的情況下,這相當(dāng)于 1242x2208 像素。但是實際上并不是這樣,從上表可以看出是1080x1920,而“內(nèi)部”分辨率為1242x2208。實際上,內(nèi)部分辨率應(yīng)該更高,但iOS設(shè)備會自動縮放內(nèi)容,以適應(yīng)1080x1920的分辨率。
- iPhone 6(s) Plus 和 iPhone 7 Plus 是最為特殊的設(shè)備,資源分辨率與屏幕分辨率的比例是1.15 : 1, 而其他的設(shè)備比例是 1 : 1。不同的人群關(guān)注的分辨率也是不同的,UI設(shè)計人員主要關(guān)注的是資源分辨率,開發(fā)人員主要關(guān)注的是設(shè)計分辨率,而一般用戶主要關(guān)注的屏幕分辨率。
當(dāng)我們創(chuàng)建應(yīng)用程序的時候,iOS系統(tǒng)將考慮縮放因子,以最大可能的分辨率顯示應(yīng)用程序及界面,而我們幾乎無需為此做任何工作。