有時需爲視圖屬性指定大小尺寸值(一般以像素爲單位,但有時也用點、毫米或英寸)。最多見的屬性有:字體
Android 使用 drawable-ldip、drawable-mdip 以及 drawable-hdip 三個目錄下的圖像文件自動適配不一樣像素密度的屏幕。假如圖像完成了自動適配,但邊距沒法縮放適配,又或者用戶配置了大於默認值的文字大小,會發生什麼狀況呢?spa
爲解決這些問題,Android 提供了密度無關的尺寸單位(density-independent dimension units)。使用這種單位,可在不一樣屏幕密度的設備上獲取一樣大小的尺寸。無需麻煩的轉換計算,應用運行時,Android 會自動將這種單位轉換成像素單位。ip
英文 density-independent pixel 的縮寫形式,意爲密度無關像素。在設置邊距、內邊距或任何不打算按像素值指定尺寸的狀況下,一般都使用 dp 這種單位。若是設備屏幕密度較高,密度無關像素會相應擴展至整個屏幕。1dp 單位在設備屏幕上老是等於 1/160 英寸。使用 dp 的好處是,不管屏幕密度如何,總能得到一樣的尺寸。開發
英文 scale-independent pixel 的縮寫形式,意爲縮放無關像素。它是一種與密度無關的像素,這種像素會受用戶字體偏好設置的影響。咱們一般會用 sp 來設置屏幕上的字體大小。it
相似與 dp 的縮放單位。容許以點(1/72英寸)、毫米或英寸爲單位指定用戶界面尺寸。但在實際開發中不建議使用這些單位,由於並不是全部設備都能按照這些單位進行正確的尺寸縮放配置。io