1、 首先明確:
iPhone 3G/3GS 螢幕像素解析度是 320×480 ;
iPhone4、iPod Touch4 螢幕像素解析度 640×960。
2、為了相容 iOS 4.0 之前的程式也能在 iOS 4 上運行,蘋果設計了一個邏輯解析度單位point ,在
iPhone3 上 1個 Point 相當於 1個pixel ; 而 iPhone4 上1個 point 就相當於4個 pixel;因此所有的iPhone、iPod Touch 裝置的 Point 解析度都是 320×480 ,也就是邏輯解析度都一致,保證了App不需要修改也能正常的在高像素解析度上運行,只是原來App中的圖片會被拉升後顯示,影響美觀,沒有發揮retina的優勢。
3、iOS App設計和開發人員要做什嗎?
1)App 的表徵圖設計,發布到Store的App必須同時提供高清Size的App Icon(在原來基礎上都要對應提供一份高清版本),參考Apple官方文檔。
2) 代碼中引用的靜態UI 圖片素材,也是提供兩份,一份低像素解析度,一份高解析度使用。
比如:原來App素材包有個 demo.png ,那麼 App bundle中就必須再提供一個兩倍size的 demo.png , 並且檔案命名為 demo@2x.png 後添加到項目工程中;
在代碼中仍然這樣寫 [UIImage imageNamed:@"demo.png"] 即可, 無需修改代碼,iOS系統可以自動對應不同螢幕取不同size的影像檔。
3) 如果App運行中從網路非同步擷取圖片進行顯示,或遊戲App中動態產生圖片後顯示,需加上代碼判斷不同螢幕裝置來擷取/產生不同size圖片。
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2){
//retina 或 ipad上啟用2x顯示iPhoneApp
//擷取高清size圖片
}
else {
//擷取低清size圖片
}
轉自:http://my.oschina.net/yongbin45/blog/69545