VGA、HVGA、WVGA、QVGA、FWVGA

1.術語和概念

術語

說明

備註

Screen size(屏幕尺寸)

指的是手機實際的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸

摩托羅拉milestone手機是3.7英寸

Aspect Ratio(寬高比率)

指的是實際的物理尺寸寬高比率,分爲long和nolong

Milestone是16:9,屬於long

Resolution(分辨率)

和電腦的分辨率概念一樣,指手機屏幕縱、橫方向像素個數

Milestone是854*480

DPI(dot per inch)

每英寸像素數,如120dpi,160dpi等,假設QVGA(320*240)分辨率的屏幕物理尺寸是(2英寸*1.5英寸),dpi=160

可以反映屏幕的清晰度,用於縮放UI的

Density(密度)

屏幕裏像素值濃度,resolution/Screen size可以反映出手機密度,


Density-independent pixel (dip)

指的是邏輯密度計算單位,dip和具體像素值的對應公式是dip/pixel=dpi值/160,也就是px = dp * (dpi / 160)




VGA
Video Graphics Array

QVGA

即"Quarter VGA"。中VGA的四分之一尺寸,亦即在液晶屏幕(LCD)上輸出的分辨率是240×320像素。

HVGA
Half-size VGA。是VGA的一半,分辨率爲(480*320),(3:2寬高比)

WVGA
即“Wide VGA” 。其分辯率爲800×480象素。是擴大了VGA(640×480)的分辨率。應用於PDA和手機等,因爲很多網頁的寬度都是800,所以WVGA的屏幕會更加適和於瀏覽網頁,可以說是未來手持設備的分辨率的大趨勢。

FWVGA

FWVGA - Full Wide VGA 數碼產品屏幕材質的一種,VGA的另一種形式,比WVGA分辨率高,別名 : Full Wide VGA, ,其分辨率854×480象素(16:9)。是擴大了WVGA(800×480)的分辨率(15:9)。


dip: device independent pixels(設備獨立像素). 不同設備有不同的顯示效果,這個和設備硬件有關,一般我們爲了支持WVGA、HVGA和QVGA 推薦使用這個,不依賴像素。

dp: dip是一樣的

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

pt: point,是一個標準的長度單位,1pt=1/72英寸,用於印刷業,非常簡單易用;
sp: scaled pixels(放大像素). 主要用於字體顯示best for textsize。

in(英寸):長度單位。
mm(毫米):長度單位。

Android主要有以下幾種屏:如下表  

屏幕

Tyep

寬度

Pixels

高度

Pixels

尺寸

Range(inches)

屏幕密度

QVGA

240

320

2.6-3.0

low

WQVGA

240

400

3.2-3.5

low

FWQVGA

240

432

3.5-3.8

low

HVGA

320

480

3.0-3.5

Medium

WVGA

480

800

3.3-4.0

High

FWVGA

480

854

3.5-4.0

High

WVGA

480

800

4.8-5.5

Medium

FWVGA

480

854

5.0-5.8

Medium

備註

目前android默認的low=120 ;Medium =160; High = 240


比如:計算WVGA(800*480)分辨率,3.7英寸的密度DPI,Diagonal pixel表示對角線的像素值(=2013011316354441.gif),DPI=933/3.7=252

手機屏幕分類和像素密度的對應關係如表1所示:


Low density (120), ldpi

Medium density (160), mdpi

High density (240), hdpi

Small screen

QVGA (240x320)



Normal screen

WQVGA400 (240x400)WQVGA432 (240x432)

HVGA (320x480)

WVGA800 (480x800)WVGA854 (480x854)

Large screen


WVGA800* (480x800)WVGA854* (480x854)



ldpi 低密度 120dpi
mdpi 中密度 160dpi
hdpi 高密度 240dpi
xhdpi 超高密度 320dpi
xxhdpi 超超高密度 480dpi
xxxhdpi 超超超高密度 640dp

density:密度
手機像素密度(density)實際上是以單位英寸160個像素作爲參考標準,主要密度有0.75,1,1.5和2,當密度爲2時就表示1英寸有320個像素,Android中通過代碼可以獲取到屏幕的像素值和密度,根據這些值就可以反向算出屏幕的物理尺寸 。

由於Android設備中獲取的密度density本身是個約等於的數值,比如計算出密度的準確值density=1.575,實際在代碼中讀到的density=1.5, 需要實現一個簡單的計算屏幕尺寸的應用在不同設備上驗證物理尺寸準確程度,具體代碼如下:
DisplayMetrics metric = new DisplayMetrics();
       getWindowManager().getDefaultDisplay().getMetrics(metric);
       int width = metric.widthPixels;  // 屏幕寬度(像素)
       int height = metric.heightPixels;  // 屏幕高度(像素)
       float density = metric.density;  // 屏幕密度(0.75 / 1.0 / 1.5)
       int densityDpi = metric.densityDpi;  // 屏幕密度DPI(120 / 160 / 240)
      double diagonalPixels = Math.sqrt(Math.pow(width, 2)+Math.pow(height, 2)) ;
double screenSize = diagonalPixels/(160*density) ;


從UI設計師的角度理解:
px(像素)是我們UI設計師在PS裏使用的(不解釋),同時也是手機屏幕上所顯示的(也不解釋)
dp是開發寫layout的時候使用的尺寸單位,sp是開發寫layout時關於字體的字號單位,且dp與sp總爲1:1關係。

Android支持四種不同的dpi模式:ldpi mdpi hdpi xhdpi

一般地,手機分辨率與所運行的dpi模式是匹配的,例如hvga(320x480像素)的手機屏幕一般在3.5英寸左右,運行在mdpi模式下(也有例外,稍後解釋)(這個是ROM控制的,app不能改變)。當運行在mdpi下時,1dp=1px:也就是說設計師在PS裏定義一個item高48px,開發就會定義該item高48dp;Photoshop中14px大的字體,開發會定義爲14sp。

對於一部wvga(480x800)手機(G7、N1、NS),一般是運行在hdpi模式下。當運行在hdpi模式下時,1dp=1.5px:也就是說設計師在PS裏定義一個item高72px,開發就會定義該item高48dp;Photoshop中21px大的字體,開發會定義爲14sp。

所以,當你的app需要適配多個dpi模式的時候(例如同時適配mdpi與hdpi),若你在wvga下做設計,你需要將你的各數值都爲3的倍數,並在切圖標註時將所有的數字除以3乘以2換算成dp,這樣開發的同一套layout就能用在兩個不同的dpi模式下,而不是寫兩套layout。

mdpi與hdpi是2:3的關係
mdpi與xhdpi是1:2的關係
ldpi與mdpi是3:4的關係

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章