- Android編程權威指南(第4版)
- (美)克莉絲汀·馬西卡諾 布賴恩·加德納 比爾·菲利普斯 克里斯·斯圖爾特
- 777字
- 2021-06-15 15:29:10
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會在運行時自動將它們的值轉換為像素單位。
- Dynamics 365 for Finance and Operations Development Cookbook(Fourth Edition)
- 基于粒計算模型的圖像處理
- OpenCV for Secret Agents
- Android 7編程入門經典:使用Android Studio 2(第4版)
- FFmpeg入門詳解:音視頻原理及應用
- R Deep Learning Cookbook
- Linux Device Drivers Development
- 深入理解Android:Wi-Fi、NFC和GPS卷
- Learning Unity 2D Game Development by Example
- Mastering JavaScript High Performance
- 響應式Web設計:HTML5和CSS3實戰(第2版)
- 基于GPU加速的計算機視覺編程:使用OpenCV和CUDA實時處理復雜圖像數據
- Selenium WebDriver Practical Guide
- 大規模語言模型開發基礎與實踐
- C/C++程序設計教程