Android設備單位概念總結

1、分辨率

分辨率就是屏幕上顯示的像素個數,分辨率160×128的意思是水平方向含有像素數爲160個,垂直方向像素數128個。屏幕尺寸同樣的狀況下,分辨率越高,顯示效果就越精細和細膩。android

2、屏幕尺寸

設備的物理屏幕尺寸。所謂屏幕尺寸指的是屏幕對角線的長度,單位是英寸。
然而不一樣的屏幕尺寸是能夠採用相同的分辨率的,而它們之間的區別在與密度(density)不一樣。
web

 

3、屏幕密度

屏幕密度與DPI這個概念緊密相連,DPI全拼是dots-per-inch,即每英寸的點數。也就是說,密度越大,每英寸內容納的點數就越多。(打印分辨率 (每英寸所能打印的點數,即打印精度) 佈局

android.util包下有個DisplayMetrics類能夠得到密度相關的信息。
最重要的是densityDpi這個成員,它有以下幾個經常使用值:
字體

  1. DENSITY_LOW = 120  google

  2. DENSITY_MEDIUM = 160  //默認值  spa

  3. DENSITY_TV = 213      //TV專用  orm

  4. DENSITY_HIGH = 240  ip

  5. DENSITY_XHIGH = 320  ci

  6. DENSITY_400 = 400  資源

  7. DENSITY_XXHIGH = 480  

  8. DENSITY_XXXHIGH = 640

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

apk的資源包中

當屏幕density=240時,使用hdpi 標籤的資源

當屏幕density=160時,使用mdpi標籤的資源

當屏幕density=120時,使用ldpi標籤的資源。

不加任何標籤的資源是各類分辨率狀況下共用的。

佈局時儘可能使用單位dip,少使用px

 

 

4、px

屏幕上的點,不一樣設備不一樣的顯示屏顯示效果相同,這是絕對像素,是多少就永遠是多少不會改變。

5、dip/dp

DIP是Density Independent Pixel,直譯爲密度無關的像素:設備獨立像素.

一種基於屏幕密度的抽象單位。在每英寸160點的顯示器上,1dp =1px。

 

dp與px換算公式:

pixs=dips * (densityDpi/160)

dips=(pixs*160)/densityDpi

 

 

針對dip和px 的關係,作如下概述:

QVGA屏density=120                       QVGA(240px*320px)

HVGA屏density=160                        HVGA(320px*480px)

WVGA屏density=240                      WVGA(480px*800px)

WQVGA屏density=120                    WQVGA(240px*400px)

density值表示每英寸有多少個顯示點,與分辨率是兩個概念。

 

 

官方推薦使用dp是由於它會根據你設備的密度算出對應的像素。
公式爲:pixel = dip*density

 

 

dp與px轉換的方法:

    public static int dipToPx(Contextcontext, float dipValue) {

       final float scale =context.getResources().getDisplayMetrics().density;

       return (int) (dipValue * scale+ 0.5f);

    }

 

    public static int pxToDip(Contextcontext, float pxValue) {

       final float scale =context.getResources().getDisplayMetrics().density;

       return (int) (pxValue / scale+ 0.5f);

    }

 

 

6、PPI

Pixels per inch,每英寸的像素數(也被稱爲圖像的採樣率)屏幕X/Y軸上真正的物理PPI。

所以PPI數值越高,即表明顯示屏可以以越高的密度顯示圖像。固然,顯示的密度越高,擬真度就越高。

7、sp

scaled pixels — bestfor text size,放大像素,與刻度無關的像素:主要處理字體的大小。

根據google的推薦,像素統一使用dip,字體統一使用sp

相關文章
相關標籤/搜索