一直以來, 手機規格尺寸 pixel 與 dp (Density- Independent Pixels) 的問題,
就滿常出現在開發者之中的.
網路文章往往也一知半解, 即使知道了 pixel 與 dp 的轉換公式,
也不知公式如何得來?!
近日, Android Developer 上傳了一部影片, 比較詳細地說明了這些單位的前世今生!
我將其重點摘要如下:
DPI - dots per inch
Android 的螢幕解析度的好壞, 可以用 pixel density 來衡量. 而它的單位便是 dpi.
dpi 越高的的螢幕, 可以顯示的越精細, 看下圖便可瞭解.
因此, Google 為了簡化區分這些不同裝置螢幕解析度的好壞,
將其依 dpi 分成了四個不同的類別, 分別是: MDPI, HDPI, XHDPI, XXHDPI.
160 dpi 的裝置屬 MDPI, 240 dpi 即 HDPI, 320 dpi 是 XHDPI, 480 dpi 是 XXHDPI.
以 MDPI 為最基本的解析度, 其他三個都是其倍數.
Density Independent Pixels (dp or dip)
Density Independent Pixels 簡寫為 dp or dip, 是一個虛擬的解析度,
目的是為了讓我們更好量化手機上的視覺大小.
1 dp 在 160 dpi (MDPI) 的裝置上的長度等於 1 pixel.
1 dp 在 320 dpi (MDPI) 的裝置上的長度等於 2 pixel.
(如果是算大小, 記得要平方.)
以此類推, 因此有了這個公式:
相同的 dp 大小在不同的裝置上看起來, 基本上會是非常相近的.
而我們人的手指大小通常約 50 dp, 因此 button建議的大小是不小於 50dp 左右的長寬.
計算( 以 Nexus 7 為例 )
Nexus 7 是一個 7" 的 XDPI 裝置, 解析度為 1920 x 1200 px, 問長寬分別是多少 dp?
首先, XDPI 是 320 dpi,
接著套用公式,
長 1920/ (320/160) = 960 dp
寬 1200/ (320/160) = 600 dp
設計上的建議
瞭解了整個單位設計的原因, 影片的最後還給了兩點建議:
1. 視覺 Layout 的設計上以 dp 為單位
2. 依需要分別給 MDPI, HDPI, XHDPI, XXHDPI 不同大小的圖片.
沒有留言:
張貼留言