天天看點

Android中dip, dp, px, sp的差別

 dip: device independent pixels(裝置獨立像素). 不同裝置有不同的顯示效果,這個和裝置硬體有關,一般我們為了支援WVGA、HVGA和QVGA 推薦使用這個,不依賴像素。

  px: pixels(像素). 不同裝置顯示效果相同,一般我們HVGA代表320x480像素,這個用的比較多。

  pt: point,是一個标準的長度機關,1pt=1/72英寸,用于印刷業,非常簡單易用;

  sp: scaled pixels(放大像素). 主要用于字型顯示best for textsize。

  由此,根據 google 的建議,TextView 的字号最好使用 sp 做機關,而且檢視

  TextView

  的源碼可知 Android 預設使用 sp 作為字号機關。

  在 Android 中,  1pt 大概等于 2.22sp

  以上供參考,如果 UI 能夠以 sp 為機關提供設計是最好的,如果設計中沒有 sp

  的概念,則開發人員也可以通過适當的換算取近似值。

  過去,程式員通常以像素為機關設計計算機使用者界面。例如,定義一個寬度為300像素的表單字段,列之間的間距為5個像素,圖示大小為16×16像素 等。這樣處理的問題在于,如果在一個每英寸點數(dpi)更高的新顯示器上運作該程式,則使用者界面會顯得很小。在有些情況下,使用者界面可能會小到難以看清 内容。

  與分辨率無關的度量機關可以解決這一問題。Android支援下列所有機關。

  px(像素):螢幕上的點。

  in(英寸):長度機關。

  mm(毫米):長度機關。

  pt(磅):1/72英寸。

  dp(與密度無關的像素):一種基于螢幕密度的抽象機關。在每英寸160點的顯示器上,1dp = 1px。

  dip:與dp相同,多用于android/ophone示例中。

  sp(與刻度無關的像素):與dp類似,但是可以根據使用者的字型大小首選項進行縮放。

  為了使使用者界面能夠在現在和将來的顯示器類型上正常顯示,建議大家始終使用sp作為文字大小的機關,将dip作為其他元素的機關。當然,也可以考慮使用矢量圖形,而不是用位圖

以上摘自 :http://blog.csdn.net/chenji001/article/details/6018780