? ? ? ?1、文字大小(text size),指定設備上顯示的文字像素高度;
? ? ? ?2、邊距(margin),指定視圖組件間的距離;
? ? ? ?3、內邊距(padding),指定視圖外邊框與其內容間的距離。
? ? ? ?在南昌APP開發中,Android使用密度修飾drawable目錄下的圖像文件自動適配不同像素密度的屏幕。那么問題來了,假如圖像完成了自動適配,但邊距無法縮放適配,又或者用戶配置了大于默認值的文字大小,會發生什么情況呢?
? ? ? ?為解決這些問題,Android提供了密度無關的尺寸單位。使用這種單位,可在不同屏幕密度的設備上獲得同樣的尺寸。無需進行麻煩的轉換計算,應用運行時,Android會自動將這種單位轉換成像素單位。圖1展示了這種尺寸單位在Textview上的應用。
圖1 應用在Textview上的密度無關尺寸單位(左:MDPI;中:HDPI;右:HDPI+大字體)
? ? ? ?1、dp(或dip)
? ? ? ?英文density-independent pixel的縮寫,意為密度無關像素。在設置邊距、內邊距或任何不打算按像素值指定尺寸的情況下,通常都使用dp這種單位。如果設備屏幕密度較高,密度無關像素會相應擴展至整個屏幕。1dp單位在設備屏幕上總是等于1/160英寸。使用dp的好處是,無論屏幕密度如何,總能獲得同樣的尺寸。
? ? ? ?2、sp
? ? ? ?英文scale-independent pixel的縮寫,意為縮放無關像素。它是一種與密度無關的像素,這種像素會受用戶字體偏好設置的影響。我們通常會使用sp來設置屏幕上的字體大小。
?
? ? ? ?3、pt、mm、in
? ? ? ?類似于dp的縮放單位。允許以點(1/72英寸)、毫米或英寸為單位指定用戶界面尺寸。但在實際開發中不建議使用這些單位,因為并非所有設備都能按照這些單位進行正確的尺寸縮放配置。
? ? ? ?以上Android開發中常用到的幾種尺寸單位,大家可以了解一下!最后,百恒網絡想說的是,在實際開發中,我們一般情況下只會用到dp和sp兩種單位。Android在運行時會自動將它們的值轉換為像素單位。