我知道以前也有過類似的問題,但我真的處於一個糟糕的境地。支持iPhone 3G,iPhone 4和iPhone 5的圖像分辨率
我建立這是想在iPhone 3G,iPhone 4和iPhone 5工作的應用程序。
我是iOS開發人員的初學者,到現在爲止,我已經寫了大量的UI代碼,這些代碼只適用於iPhone模擬器。我專注於通用語言和SDK功能,以便了解iOS的一般開發,因此大多忽略了模擬器向我提供的任何解析支持。
現在,我正面臨這些不同iPhone版本之間的可移植性要求,我非常困惑。首先,讓我告訴你們,我知道有關iPhone 3和iPhone 4的屏幕支持的詳細信息,並請糾正我,如果我(現在無視iPhone 5完全爲)做錯了什麼:
系統假定一個320x480 POINT根據查看區域。在iPhone 3中,實際的屏幕尺寸是相同的,但iPhone 4使用實際的尺寸爲640×960像素的屏幕。
我們根據320x480大小編碼並生成我們的視圖。我們提供正常分辨率的圖像(例如100x100大小的some_image.png)和高分辨率版本以及「@ 2x」後綴。 (200x200 -sized [email protected])都在同一個應用程序包中。
當調用
UIKit
圖像裝載方法,例如UIImage
或UIImageView
系統的那些選擇我們的圖像並加載它們的正確版本,根據該電流裝置(iPhone 3或iPhone 4)。
到現在爲止,我還是持謹慎態度,提供以支持低分辨率和高分辨率iPhone 3G和iPhone 4這三個步驟。
比方說,我有一個100x100的圖像,我將在UIImage
對象中使用它。我還提供了200x200高分辨率版本,我認爲這可以在iPhone 4和iPhone 5上使用「@ 2x」後綴。
但是,讓我們說,我有大小小320x480覆蓋整個背景的背景圖像和我公司提供的640×960版本與「@ 2倍」後綴爲好。
但是iPhone5屏幕會發生什麼事,尺寸爲640x1136?我應該準備一個iPhone5分辨率圖像並將其加載到if(IPHONE5 == true)
條件?
處理這個問題的正確方法是什麼?
感謝您的回答。看來我們需要存儲3個不同版本的縱橫比相關圖像。如果我們的應用使用具有不同背景的許多不同視圖,這是否會造成內存負載? –
應用程序包/ apk文件將更大(並且是更大的下載),需要更多的設備存儲空間。在運行時,它只會將其中一個圖像加載到內存中。如果通過「具有不同背景的不同視圖」,只有可見視圖需要將其背景圖像加載到內存中,並且iOS通常會在資源不足時卸載它不需要的圖像。 – bobnoble