過去,程序員通常以像素為單位設計計算機用戶界面。比如圖片尺寸是80×32像素。這種處理的問題是,如果程序在每英寸點數(dpi)更高的新顯示器上運行,用戶界面會顯得非常小。在某些情況下,用戶界面可能太小,看不清楚。因此,我們可以通過開發具有獨立於分辨率的測量單位的程序來解決這個問題。Android應用程序開發支持不同的度量單位。
2.測量單位的含義
dip:設備
獨立像素。不同的設備有不同的顯示效果,這和設備的硬件有關。壹般來說,我們支持WVGA,HVGA和QVGA。
這是推薦的,並且不依賴於像素。
Dp:蘸料是壹樣的
像素:像素(像素)
不同的設備顯示相同的效果。壹般HVGA代表320x480像素,用的比較多。
pt:
點是長度的標準單位,1pt = 1/72英寸,用於印刷行業,非常簡單易用。
Sp:縮放像素(放大像素)。
主要用於最適合textsize的字體顯示。
英寸:長度單位。
毫米:長度單位。
3.計量單位的換算公式
在android源碼包TypedValue.java中,我們查看了以下函數:
復制代碼
代碼如下:
公共靜態浮點應用尺寸(int
單位,浮點值,
顯示度量度量)
{
開關(單位)
{
復雜情況_單位_像素:
返回值;
情況
復雜單元傾角:
返回值* metrics.density
情況
組合系統單元服務點:
返回值* metrics.scaledDensity
情況
復雜單元點:
返回值* metrics . xdpi *(1.0f/72);
情況
復雜單元輸入:
返回值* metrics.xdpi
情況
復雜單元毫米:
返回值* metrics.xdpi *
(1.0f/25.4 f);
}
返回0;
}
這個函數的作用是將每個單位轉換成像素。
Metrics.density:默認值為density _ device/(float)density _ default;
Metrics.scaledDensity:默認值為density _ device/(float)density _ default;
Metrics.xdpi:默認值為DENSITY _ DEVICE
DENSITY_DEVICE:是屏幕密度。
DENSITY_DEFAULT:默認值為160。
4.屏幕密度:表示每英寸有多少顯示點,與分辨率不同。
Android主要有以下屏幕:下表
屏幕
Tyep
寬度
像素
高度
像素
措施
範圍(英寸)
屏幕密度
QVGA
240
320
2.6-3.0
低的
WQVGA
240
名流
3.2-3.5
低的
FWQVGA
240
432
3.5-3.8
低的
HVGA
320
480
3.0-3.5
中等
WVGA
480
八百
3.3-4.0
高的
FWVGA
480
854
3.5-4.0
高的
WVGA
480
八百
4.8-5.5
中等
FWVGA
480
854
5.0-5.8
中等
評論
目前安卓默認低120;中= 160;
高= 240
5.總結壹下。
根據px =傾角*密度/
160,那麽當屏幕密度為160時,px = dip。
根據谷歌的建議,TextView的字體大小最好用sp。
做單位,查壹下TextView的源代碼就知道Android默認使用sp作為字體大小單位。使用傾角作為其他元素的單位。