開發中,例如: nanshanImage.image=[UIImage imageNamed:@'index_pic.png'];
在項目中還保存中index_pic@2x.png的圖片,此圖為了只適應960*640的分辨率手機
注意:適應Iphone5的相關圖片尺寸,也要加@2x.png。比如歡迎界面:Default-568h@2x.png;這個才能匹配上。
而index_pic.png是適應640*320的手機,但是在代碼中必須寫成[UIImage imageNamed:@'index_pic.png'];這樣系統自動會根據不同分辨率手機決定是否調用index_pic@2x.png還是index_pic.png,會自動根據分辨率來匹配用哪張圖。
可是如果寫成[UIImage imageNamed:@'index_pic@2x.png'];那么系統無法自動判斷,根據640*320分辨率來調用index_pic.png圖片,系統只會將index_pic@2x.png這一張圖當做某控件的圖片,不會自動尋找匹配。
因此,開發中[UIImage imageNamed:@'index_pic.png'];里面的圖片都是用小分辨率格式名的圖片,這樣會自動適應大分辨率圖片,直接調用。
UIImage類處理了所有需要加載高分辨率圖片到應用中的工作。當創建一個新的image對象后,只要以同樣的名稱來同時請求圖片的標準版和高分辨率版即可。例如,如果有兩張圖片文件,名為Button.png和Button@2x.png,只要用以下代碼請求圖片即可:
UIImage* anImage = [UIImage imageNamed:@'Button'];
注意,在IOS4及以后的版本,可以省略文件擴展名而只提供圖片名稱即可。
在高分辨率顯示屏下, imageNamed:, imageWithContentsOfFile:, 和initWithContentsOfFile: 方法自動查找具有@2x名稱的圖片(注意:如果@2x.png圖片與.png圖片必須放在項目同一包下,才能自動查找)。如果找到,則會加載該圖片。如果沒有提供給定圖片的高分辨率版本,image對象仍會加載標準版的圖片資源,并在繪畫過程中將其縮放。如果有提供給定圖片的高分辨率版本,但是沒有標準版的圖片,在標準版顯示屏下不會加載高清的圖片。
說明:1,Create folder references for any added folders
創建引入的是藍色的文件夾結構,物理路徑。 利用imageWithContentsOfFile獲取圖片,@2x.png與.png必須在同一藍色目錄下。
2,Create groups for any added folders
導入文件的時候會是邏輯結構,而不是物理結構,目錄結構圖標如下,黃色的文件夾結構,和構建的Group是一樣的,@2x.png與.png可在黃色不同的文件夾下(因為沒有物理路徑,引用的圖片路徑其實在同一路徑下)。
注意:xib中選擇圖片做背景時,也是一樣的原理!也是選擇不帶@2x的,這樣會自帶根據分辨率匹配是否使用小圖還是@2x大圖!
賞
開發中,例如: nanshanImage.image=[UIImage imageNamed:@'index_pic.png'];
在項目中還保存中index_pic@2x.png的圖片,此圖為了只適應960*640的分辨率手機
注意:適應Iphone5的相關圖片尺寸,也要加@2x.png。比如歡迎界面:Default-568h@2x.png;這個才能匹配上。
而index_pic.png是適應640*320的手機,但是在代碼中必須寫成[UIImage imageNamed:@'index_pic.png'];這樣系統自動會根據不同分辨率手機決定是否調用index_pic@2x.png還是index_pic.png,會自動根據分辨率來匹配用哪張圖。
可是如果寫成[UIImage imageNamed:@'index_pic@2x.png'];那么系統無法自動判斷,根據640*320分辨率來調用index_pic.png圖片,系統只會將index_pic@2x.png這一張圖當做某控件的圖片,不會自動尋找匹配。
因此,開發中[UIImage imageNamed:@'index_pic.png'];里面的圖片都是用小分辨率格式名的圖片,這樣會自動適應大分辨率圖片,直接調用。
UIImage類處理了所有需要加載高分辨率圖片到應用中的工作。當創建一個新的image對象后,只要以同樣的名稱來同時請求圖片的標準版和高分辨率版即可。例如,如果有兩張圖片文件,名為Button.png和Button@2x.png,只要用以下代碼請求圖片即可:
UIImage* anImage = [UIImage imageNamed:@'Button'];
注意,在IOS4及以后的版本,可以省略文件擴展名而只提供圖片名稱即可。
在高分辨率顯示屏下, imageNamed:, imageWithContentsOfFile:, 和initWithContentsOfFile: 方法自動查找具有@2x名稱的圖片(注意:如果@2x.png圖片與.png圖片必須放在項目同一包下,才能自動查找)。如果找到,則會加載該圖片。如果沒有提供給定圖片的高分辨率版本,image對象仍會加載標準版的圖片資源,并在繪畫過程中將其縮放。如果有提供給定圖片的高分辨率版本,但是沒有標準版的圖片,在標準版顯示屏下不會加載高清的圖片。
說明:1,Create folder references for any added folders
創建引入的是藍色的文件夾結構,物理路徑。 利用imageWithContentsOfFile獲取圖片,@2x.png與.png必須在同一藍色目錄下。
2,Create groups for any added folders
導入文件的時候會是邏輯結構,而不是物理結構,目錄結構圖標如下,黃色的文件夾結構,和構建的Group是一樣的,@2x.png與.png可在黃色不同的文件夾下(因為沒有物理路徑,引用的圖片路徑其實在同一路徑下)。
注意:xib中選擇圖片做背景時,也是一樣的原理!也是選擇不帶@2x的,這樣會自帶根據分辨率匹配是否使用小圖還是@2x大圖!
賞
文章列表