對於初學者來說,很難釐清這些單位之間的關係
1. dpi? ppi?
dpi(dot per inch),每英吋多少點。用於表示印刷產品點密度。ppi(pixel per inch),每英吋多少像素。用於螢幕的像素密度。
針對螢幕做設計時,dpi = ppi。
2. dp? px?
px 為實際長度
dp 為 Android 自己的長度運算單位
並規定 在 160ppi 時 1dp = 1px長度
公式:px = (ppi/160)*dp
舉幾個例子來說明
在螢幕上,組成圖片的單位是 pixel(單位 px)
如下圖所示
根據螢幕解析度不同,pixel 點數也就不同
例如同樣這張圖片,在不同解析度的螢幕之下
看起來的大小就不同
同樣螢幕大小,解析度越大,圖片會越小。
同樣解析度大小,螢幕越大,圖片會越大。
如下圖:
1. 4.3吋螢幕,解析度800*480
2. 4.3吋螢幕,解析度1280*720
3. 5.5吋螢幕,解析度1280*720
由上圖可知,決定肉眼看到的圖片大小不是根據螢幕尺寸,也不是根據解析度
那是根據什麼呢?
ppi
如下圖所示
1. 4.3吋螢幕,解析度800*480,217 ppi((√800*800+480*480) / 4.3 = 217),1dp約 1.4px (2217/117/160 = 1.4)
2. 4.3吋螢幕,解析度1280*720,314ppi,1dp約 2px
3. 5.5吋螢幕,解析度1280*720,267ppi,1dp約1.7px
由上圖可知,ppi越大,圖片也就會越大
比例起來由肉眼看到的圖片大小也會差不多
知道這個原理之後,然後呢?
由 公式:px = (ppi/160)*dp 來看
ppi 是已知的,所以 Android 會自行去計算圖片要被放大為幾倍的px
所以我們在設計UI的時候
只要把圖片的單位設定為dp
圖片就會根據你的螢幕大小與解析度,依據比例來自動縮放圖片大小囉!
參考資料:
http://www.zhihu.com/question/21220154
沒有留言:
張貼留言