2011-03-16 64 views
6

我有一個關於更新我的應用程序的圖形爲iPhone 4iPhone - 適應圖像視網膜顯示器

我保持每個視圖的分辨率達到了480×320點的視網膜顯示的問題。

所以我想知道:假設我有一個100×50的UIImageView。 對於我的實際圖像,我將加載爲200 x 100像素@ 163 ppi或100 x 50像素@ 326 ppi更好?在「輕盈」方面它是一回事嗎?這是首選的方式?

謝謝,你真棒

洛倫佐

+0

使用兩個圖像,一個用於視網膜,一個用於舊屏幕? – 2011-03-16 21:23:07

回答

16

1)定義您的UIImageView爲100 x 50像素,如上所述。

2)有一個圖像文件是100x50像素「MyImage」,第二個圖像文件是200x100像素,並將其命名爲「MyImage @ 2x」。

3)在您的代碼中,請參閱圖像文件「MyImage」。

iOS會自動選擇正確的圖像。在沒有視網膜顯示器的舊設備上(即iPhone 3GS),將使用「MyImage」文件。在具有視網膜顯示器的新設備上,將使用「@ 2x」版本。

+0

這是正確的。我要添加的唯一東西是命名帶有其正確擴展名的文件(即「.png」)。 – 2011-03-17 03:06:01

+0

是的,我意識到這一點。因此,最好將尺寸加倍並使用命名功能來正確加載圖像。但是讓舊設備自動縮小圖像呢?我看到可可觸摸用一個簡單的算法來做到這一點,但我擔心的是RAM的使用。 – Lorenzo 2011-03-17 10:40:28

0

Hummm很好的問題。因爲我不知道蘋果公司是如何檢查圖像,也許你應該加載200x100(通過@@ 2x命名文件,如[email protected]而不是image.png)。

但是,如果您嘗試其他選項並執行一些基準測試,請不要猶豫,告訴我們結果!

好運

0

請糾正我,如果我錯了,我不是一個圖形專家,但是這是我的問題的理解:

PPI - 像素(或點)每英寸 - 它不是圖像數據的屬性,它是屏幕(硬件)的屬性,理論上你並不能真正控制它。換句話說,一個PNG文件沒有描述每英寸顯示多少點,它只會描述每個像素的顏色。

沒有像圖像文件的PPI那樣的東西。在決定圖像的分辨率時,您應該牢記目標設備的PPI,以便在屏幕上以正確的尺寸顯示,而不必在軟件中伸展它,並且會降低清晰度。 1英寸屏幕上顯示的100x100圖像具有100ppi,2英寸屏幕上的相同圖像將以50ppi顯示。

簡而言之: 圖像沒有PPI,它們有分辨率,而這將決定文件的大小。

+0

某些圖像格式確實支持在圖像旁邊存儲DPI(≈PPI)值。但是,對於這種支持的實現差別很大,所以它不是真正需要依賴的東西。 – 2011-03-16 23:54:46