Android中px dpi dip density densityDpi 的相關說明

概念解釋html

名詞字體

解釋google

Pxspa

(Pixel像素)htm

不一樣設備顯示效果相同。這裏的「相同」是指像素數不會變,好比指定UI長度是100px,那無論分辨率是多少UI長度都是100px。也正是由於如此才形成了UI在小分辨率設備上被放大而失真,在大分辨率上被縮小。blog

Screen Sizeip

(屏幕尺寸)ci

通常所說的手機屏幕大小如1.6英寸、1.9英寸、2.2英寸,都是指的對角線的長度,而不是手機面積。咱們能夠根據勾股定理獲取手機的寬和長,固然還有面積。源碼

Resolutionit

(分辨率)

指手機屏幕垂直和水平方向上的像素個數。好比分辨率是480*320,則指設備垂直方向有480個像素點,水平方向有320個像素點。

Dpi

(dots per inch

  像素密度)

指每英寸中的像素數。如160dpi指手機水平或垂直方向上每英寸距離有160個像素點。假定設備分辨率爲320*240,屏幕長2英寸寬1.5英寸,dpi=320/2=240/1.5=160

注意:該值對應於DisplayMetrics類中屬性densityDpi的值。具體請參考http://www.cnblogs.com/wader2011/archive/2011/11/28/2266669.html

Density

(密度)

指每平方英寸中的像素數。

Density=Resolution/Screen size

注意:在DisplayMetrics類中屬性density的值爲dpi/160,可用於pxdip的互相轉換。具體請參考http://www.cnblogs.com/wader2011/archive/2011/11/28/2266684.html

Dip

(Device-independent pixel,設備獨立像素)

同dp,可做長度單位,不一樣設備有不一樣的顯示效果,這個和設備硬件有關,通常咱們爲了支持WVGA、HVGA和QVGA 推薦使用這個,不依賴像素。dip和具體像素值的對應公式是dip =設備密度/160* pixel,能夠看出在dpi(像素密度)爲160dpi的設備上1px=1dip

Sp

(ScaledPixels

 放大像素)

主要用於字體顯示(best for textsize)。根據 google 的建議,TextView 的字號最好使用 sp 作單位,並且查看TextView的源碼可知 Android 默認使用 sp 做爲字號單位。

總結

咱們能夠用下面的思路來解釋爲何用dip代替px做單位:

  1. 設備最終會以px做爲長度單位。
  2. 若是咱們直接用px做爲單位會形成UI在不一樣分辨率設備上出現不合適的縮放。所以咱們須要一種新的單位,這種單位要最終可以以合適的係數換算成px使UI表現出合適的大小。
  3. Dip符合這種要求嗎?

由dip和具體像素值的對應公式dip值 =設備密度/160* pixel能夠知

pixel值=dip值/(設備密度/160)其中dip值是咱們指定的長度大小,那麼pixel值,160也是定植,也就是說UI最終的pixel值只受像素密度dip的影響,這個dip就至關於那個換算係數,這個係數的值是多少有設備商去決定。所以dip符合這種要求。

關於sp也能夠這樣理解

相關文章
相關標籤/搜索