官术网_书友最值得收藏!

2.6 屏幕像素密度

在activity_main.xml文件中,我們以dp為單位指定了屬性值。下面來看看dp到底是什么。

有時需要為視圖屬性指定大小尺寸值(通常以像素為單位,有時也用點、毫米或英寸1)。一些常見的屬性包括文字大小(text size)、邊距(margin)以及內邊距(padding)。文字大小指定設備上顯示的文字像素高度;邊距指定視圖部件間的距離;內邊距指定視圖外邊框與其內容間的距離。

11英寸=2.54厘米。——編者注

在2.5節中,我們在各個帶屏幕密度修飾的drawable(比如drawable-xhdpi)下準備了對應的圖片文件,Android會用它們自動適配不同像素密度的屏幕。那么問題來了,假如圖片能自動適配,但邊距無法縮放適配,或者用戶配置了大于默認值的文字大小,會發生什么情況呢?

為解決這些問題,Android提供了與密度無關的尺寸單位。運用這種單位,可在不同屏幕像素密度的設備上獲得同樣的尺寸。無須轉換,應用運行時,Android會自動將這種單位轉換成像素單位,如圖2-9所示。

圖2-9 使用與密度無關的尺寸單位時TextView的顯示效果

  • px

    pixel的縮寫,即像素。無論屏幕密度是多少,一個像素單位對應一個屏幕像素單位。不推薦使用px,因為它不會根據屏幕密度自動縮放。
     

  • dp(或dip)

    density-independent pixel的縮寫,意為密度無關像素。通常,在設置邊距、內邊距或任何不打算按像素值指定尺寸的情況下,都使用dp這種單位。1dp在設備屏幕上總是等于1/160英寸。使用dp的好處是,無論屏幕密度如何,總能獲得同樣的尺寸。如果屏幕密度較高,那么密度無關像素會相應擴展至整個屏幕。
     

  • sp

    scale-independent pixel的縮寫,意為縮放無關像素。它是一種與密度無關的像素,這種像素會受用戶字體偏好設置的影響。sp通常用來設置屏幕上的字體大小。
     

  • pt、mm、in

    類似于dp的縮放單位,允許以點(1/72英寸)、毫米或英寸為單位指定用戶界面尺寸。實際開發中不建議使用這些單位,因為并非所有設備都能按照這些單位進行正確的尺寸縮放配置。

在本書及實際開發中,通常只會用到dp和sp這兩種單位。Android會在運行時自動將它們的值轉換為像素單位。

主站蜘蛛池模板: 青冈县| 饶河县| 孟津县| 东辽县| 宁强县| 额尔古纳市| 璧山县| 莱芜市| 集安市| 张家港市| 华池县| 青阳县| 临潭县| 张家口市| 鸡泽县| 仁怀市| 横峰县| 古交市| 蒙阴县| 呼伦贝尔市| 修文县| 伊宁市| 贵德县| 克什克腾旗| 尼木县| 千阳县| 贞丰县| 屯门区| 汤原县| 溧水县| 迭部县| 方城县| 新化县| 新竹市| 永福县| 鄢陵县| 罗城| 西城区| 南康市| 紫阳县| 泸溪县|