1. 程式人生 > >Android的長度單位

Android的長度單位

這裡寫圖片描述 儘量使用dp作為空間大小單位,sp作為和文字相關大小單位

dip: device independent pixels(裝置獨立畫素). 不同裝置有不同的顯示效果,這個和裝置硬體有關,一般我們為了支援WVGA、HVGA和QVGA 推薦使用這個,不依賴畫素。

px: pixels(畫素). 不同裝置顯示效果相同,一般我們HVGA代表320x480畫素,這個用的比較多。

pt: point,是一個標準的長度單位,1pt=1/72英寸,用於印刷業,非常簡單易用;

sp: scaled pixels(放大畫素). 主要用於字型顯示best for textsize。 px和dp的換算公式:

px = dp * (density/160)

density 是螢幕密度,表示每英寸有多少個顯示點,與解析度是兩個不同的概念.

例如,

在density=240,800px*480px螢幕上,320dp的寬度對應的畫素是480px;

在density=160,800px*480px螢幕上,320dp的寬度對應的畫素是320px,

所以,

使用dp(sp)能夠保證顯示質量,但不保證顯示尺寸比例;

相反,使用px能夠保證顯示尺寸比例,但不保證顯示效果。

注意:在160dpi螢幕上,px和dp是等價的。

android中的不同資源規格對應的螢幕密度:

hdpi = 240 , 狀態列和標題欄高各19px或者25dip

mdpi = 160 , 狀態列和標題欄高各25px或者25dip

ldpi = 120 , 狀態列和標題欄高各38px或者25dip

系統會根據裝置的螢幕密度來選擇hdpi, mdpi, ldpi相應的資源,如果沒有加標籤,則預設為mdpi。

圖片資源的放置位置直接影響圖片最終顯示的大小:

例如drawable-hdpi沒有圖片,假如現在有一張圖片10x10的a.png放在drawable-mdpi,裝置螢幕密度為240dpi。

如果在layout描述該圖片時使用wrap_content,那麼最後圖片顯示的大小就變成15x15。這是因為系統在drawable-hdpii找不到圖片,就在drawable-mdpi找,找到a.png後,根據密度不同,系統自動對圖片進行調整,所以就變成了15x15。假如drawable-hdpi有a.png,則不加處理根據其圖片大小10x10顯示。當然,如果在layout描述該圖片時宣告寬高都為10px,那麼系統無論在什麼資料夾下找到圖片一般不會影響圖片的顯示大小(在SeekBar等容器就算指定大小也有可能改變)。

顯示效果的影響因素:

綜上,顯示效果的影響因素有:螢幕尺寸、螢幕密度、解析度。

為了適應不同的裝置,要注意drawable和layout資源。

例如,

在螢幕大小相同,密度不同的情況下,提供不同的drawable資源;

在螢幕大小不同,解析度相同的情況下,提供不同的layout資源。

關於VGA (640 * 480)

FWVGA(Full Wide VGA) = 854 * 480

WVGA (Wide VGA) = 800 * 480

HVGA (Half VGA) = 320 * 480

QVGA (Quarter VGA) = 240 * 320

WXGA(Wide extra VGA):800*1280

實用對照表:

螢幕 寬度 高度 尺寸 大小 密度 Type (Pixels) (Pixels) Range (inches) Size Group QVGA 240 320 2.6 - 3.0 Small Low WQVGA 240 400 3.2 - 3.5 Normal Low FWQVGA 240 432 3.5 - 3.8 Normal Low HVGA 320 480 3.0 - 3.5 Normal Medium WVGA 480 800 3.3 - 4.0 Normal High FWVGA 480 854 3.5 - 4.0 Normal High WVGA 480 800 4.8 - 5.5 Large Medium FWVGA 480 854 5.0 - 5.8 Large Medium http://haking.iteye.com/blog/1027781 https://blog.csdn.net/meiyoumimang/article/details/7172550