1.邏輯分辨率和物理分辨率
型號 | 屏幕尺寸(inch) | 邏輯分辨率(point) | logic pixel | 縮放因子(scale f actor) | 物理分辨率(pixel) | 像素密度(PPI) |
---|---|---|---|---|---|---|
iPhone3GS | 3.5 | 320 * 480 | - | @1x | 320 * 480 | 163 |
iPhone4/4s | 3.5 | 320 * 480 | - | @2x | 640 * 960 | 326 |
iPhone5/5s | 4 | 320 * 568 | - | @2x | 640 * 1136 | 326 |
iPhone6/6s | 4.7 | 375 * 667 | - | @2x | 750 * 1334 | 326 |
iPhone6Plus/6s Plus | 5.5 | 414 * 736 | 1080x1920 (downsampling) | @3x | (1242x2208->) | 401 |
注釋
1.單位inch (英寸) : 1 inch = 2.54cm = 25.4mm
2.PPI (像素密度) : 表示沿著對角線,每英寸所擁有的像素(pixel)數(shù)目任连,PPI的數(shù)值越高,代表顯示屏能夠以越高的密度顯示圖像色瘩,即通常所說的分辨率越高慌闭,顆粒感越弱,圖像更清晰测萎。
其數(shù)值根據(jù)設(shè)備物理分辨率和屏幕尺寸利用勾股定理計算偏窝。公式是(√(像素寬2+像素高2)) ÷ 屏幕尺寸收恢。
iPhone4/iPhone4s的PPI的計算值:
3.iPhone6+的特殊之處:
圖片來源:一張圖幫你看懂 iPhone 6 Plus 屏幕分辨率
2.邏輯分辨率和物理分辨率
- 物理分辨率:硬件所支持的,顯示屏的最佳分辨率祭往;是屏幕實際存在的像素行數(shù)乘以列數(shù)的數(shù)學(xué)表達(dá)方式伦意。設(shè)計的時候用單位px,可以說是物理分辨率尺寸
- 邏輯分辨率:軟件可以達(dá)到的硼补;設(shè)計的時候用單位pt驮肉,可以說是邏輯分辨率尺寸
3.iPhone圖標(biāo)適配
在iPhone3GS時代,我們?yōu)橐粋€應(yīng)用提供圖標(biāo)(或按鈕提供貼圖)已骇,因為其scale = 1离钝,所以只需要icon.png。而iPhone4~6 Retina顯示屏褪储,因為其scale = 2卵渴,需要制作額外的@2x高分辨率版本。
iPhone6+在實際渲染時鲤竹,downsampling/1.15(1242x2208->1080x1920)浪读,準(zhǔn)確的講,應(yīng)該是@2.46x辛藻。而蘋果為方便開發(fā)者用的是@3x的素材碘橘,然后再縮放到@2.46x上。
如果APP要同時兼容iPhone3GS~iPhone6+吱肌,則需要icon.png/icon@2x.png/icon@3x.png三種分辨率的圖片痘拆。
需要注意的是,iOS APP圖標(biāo)的尺寸和命名都需要遵守相關(guān)規(guī)范氮墨。
iPhone image適配 (UIImage 2類初始化方法)
1.+imageNamed:該方法使用系統(tǒng)緩存纺蛆,適合表視圖重復(fù)加載圖像的情形吐葵。同時該API根據(jù)UIScreen的scale,自動查找包含對應(yīng)高倍圖后綴名(@2x)的文件桥氏,如果沒找到設(shè)置默認(rèn)image.scale=1.0折联。因此,使用該方法识颊,無需特意指定高倍圖后綴。在實際運(yùn)行時奕坟,系統(tǒng)如果發(fā)現(xiàn)當(dāng)前設(shè)備是Retina屏(scale=2)祥款,會自動尋找"*@2x.png"命名格式的圖片,加載針對Retina屏的圖片素材月杉,否則會失真刃跛。
2.+imageWithContentsOfFile/+imageWithData:(scale:)/-initWithContentsOfFile:/-initWithData:(scale:)
這組方法創(chuàng)建的UIImage對象沒有使用系統(tǒng)緩存,并且指定文件名必須包含明確的高倍圖后綴苛萎。如果文件名包含@2x后綴桨昙,則image.scale=2.0;否則默認(rèn)image.scale=1.0腌歉,同樣對于Retina屏將會失真蛙酪。
3.目前,適配iPhone6+時翘盖,除了一些鋪滿全屏的大圖(LogoIcon桂塞、LaunchImage)需提供三倍圖,其他的小圖仍可沿用原有的二倍圖自適應(yīng)拉伸馍驯。