我的應用程序具有填充屏幕的背景圖像。我想顯示正確的.png文件,具體取決於我們是否在Retina Display設備上。我已經爲iPhone和iOS添加了正確尺寸的所有.png文件。可能嗎 ?如果不是,我應該如何正確處理它?在Objective-C iOS 5中以編程方式更改資源用於Retina Display
我有XCode 4.3.2與iOS 5.1作爲部署目標。
我的應用程序具有填充屏幕的背景圖像。我想顯示正確的.png文件,具體取決於我們是否在Retina Display設備上。我已經爲iPhone和iOS添加了正確尺寸的所有.png文件。可能嗎 ?如果不是,我應該如何正確處理它?在Objective-C iOS 5中以編程方式更改資源用於Retina Display
我有XCode 4.3.2與iOS 5.1作爲部署目標。
如果你正確地命名的圖形(例如,添加「@2x
」的PNG文件的後綴),iOS的是足夠聰明的使用上適當的設備&顯示你的視網膜顯示圖形。特別是如果您使用UIImageViews或控件或其他,在XIB文件中設計的用戶界面中。
如果你正在編程圖像(例如,你定義一個插座,然後通過像「[UIImage imageNamed:
」這樣的圖像抓取圖像),iOS仍然足夠聰明,可以爲你拾取高分辨率圖像。圖形正確
這裏有在計算器上的其他問題,可能會幫助你,比如:
How to support both iPad and iPhone retina graphics in universal apps
這可能會起作用。首先檢查屏幕是否具有視網膜顯示,如果是,則將背景圖像設置爲視網膜圖像。如果它沒有視網膜顯示,則背景圖像是常規圖像。你可以把它放在viewWillAppear
或viewDidLoad
。
if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] &&
([UIScreen mainScreen].scale == 2.0)) {
// Retina display
UIImage *backgroundImage = [UIImage imageNamed:@"retinaImage.png"];
} else {
// Non-Retina display
UIImage *backgroundImage = [UIImage imageNamed:@"nonRetinaImage.png"];
}
希望這有助於!
感謝您的回答。 –
比例位做到了。謝謝!我有一個應用程序在運行時下載圖像,我想下載視網膜和非視網膜顯示器的正確圖像(分辨率)...所以我不能依靠@ 2x規範,因爲我沒有得到實際的文件名(正在服務由動態調整和格式化文件的媒體服務器) – chadbag