1. 程式人生 > >Android 中的長度單位px、dp、sp

Android 中的長度單位px、dp、sp

end logs 什麽 com 另一個 好的 不同的 es2017 像素

1.px

這個不用太多解釋,就是屏幕上的一個物理像素點。眼神好的小夥伴仔細看下應該能看到屏幕上的小格子,不行就滴一滴水再看。

不建議使用px,同樣的圖片在不同手機上顯示大小可能不同。分辨率高的顯示的小,分辨率低的顯示的大。

技術分享

2.dp

這個單位要認真理解,它和像素密度相關。先說像素密度dpi,即單位英寸的像素點數量。假如我的手機屏幕尺寸為1.5英寸x2英寸,分辨率為240x320,那它的像素密度即為160dpi。

Android 系統定義了4種分辨率:低(120dpi)、中(160dpi)、高(240dpi)、超高(320dpi),對應的dp到px的轉換系數分別是0.75、1、1.5、2,這個系數乘dp長度就是像素數。假如我的手機像素密度是240dpi,現在屏幕上有一個長度為80dp 的圖片,那麽顯示的像素長度為80x1.5=120px。假如我另一個手機像素密度是320dpi,那麽實際像素長度為160px。這樣,同樣的圖片在不同的手機上顯示的尺寸就幾乎沒什麽區別。

技術分享

3.dip

Density independent pixels,設備無關像素。

與dp 完全相同,名字不同罷了,不再多做解釋。

4.sp

與縮放無關的抽象像素(Scale-independent Pixel)。

和dp 很類似但唯一的區別是,Android 系統允許用戶自定義文字尺寸(小、正常、大、超大等),當文字是正常大小時1sp=1dp,其他尺寸比1dp 偏大或偏小。

建議:文字用sp 單位,其他非文字用dp 單位。例如textSize="16sp"、layout_width="60dp";偶爾也需要使用px 單位,如繪制一條分割線。

Android 中的長度單位px、dp、sp