關於蘋果iPhone 6s的螢幕參數相信大家都不會陌生,尺寸為4.7英寸,1334 x 750的解析度使其ppi達到326
sp 與 px 的換算公式:sp*ppi/160 = px
總結得出:
px = dp*ppi/160
dp = px / (ppi / 160)
px = sp*ppi/160
sp = px / (ppi / 160)
dpi和ppi這兩個是密度單位,不是度量單位,而這兩個恰恰是我們換算中重要的分母。簡單理解一下:
ppi (pixels per inch):映像解析度 (在映像中,每英寸所包含的像素數目)
dpi (dots per inch): 列印解析度 (每英寸所能列印的點數,即列印精度)
dpi主要應用於輸出,重點是列印裝置上。
我們在行動裝置 App中提到ppi和dpi其實都一樣
iOS尺寸單位pt、ppi與px之間換算關係
單位:
pt:ios開發單位,即point,絕對長度,1pt=1/72英寸。
ppi:Pixels Per Inch,即每英寸所擁有的像素數目,螢幕像素密度。
公式:
舉例:
比如iphone3gs的像素解析度是480px×320px,按下圖計算即表示在iphone3gs具有ppi為163,物理螢幕寬度約為3英寸,3*163~480,
因此iphone3gs解析度為480*320
由於iphone3GS和iphone4的物理螢幕尺寸的大小是一樣的,所以,他們的pt是相同的。但是由於iphone4的現實像素為960px×640px,也就是說每英寸在iphone4的螢幕下顯示了326個像素(剛好是iphone3GS的2倍)。
即在同一物理長度pt長度下,iphone4的螢幕像素密度是iPhone3GS的2倍,因此像素解析度是iphone3gs的2倍。
這也就是為什麼當我們在做iOS用戶端的設計時候(通常我們以@2x來設計),開發說的圖片尺寸多少pt,換算成要乘以2的原因了(如果我們做iphone6+的設計要在pt數×3)的由來了。
再去看iphone的各個尺寸就很簡單了。可以看出iphone的螢幕密度只有3種,即
@1x,163ppi(iphone3gs)
@2x,326ppi(iphone4、4s、5、5s、6)
@3x,401ppi(iphone6+)