多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > Android中dip、dp、sp、pt和px的區別

Android中dip、dp、sp、pt和px的區別

來源:程序員人生   發布時間:2015-04-11 09:29:10 閱讀次數:3852次
1、概述

        過去,程序員通常以像素為單位設計計算機用戶界面。例如:圖片大小為80×32像素。這樣處理的問題在于,如果在1個每英寸點數(dpi)更高的新顯示器上運行該程序,則用戶界面會顯得很小。在有些情況下,用戶界面可能會小到難以看清內容。由此我們采取與分辨率無關的度量單位來開發程序就可以夠解決這個問題。Android利用開發支持不同的度量單位。

2、度量單位含義

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

     dp: dip是1樣的

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

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

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

3、度量單位的換算公式

    在android源碼包TypedValue.java中,我們看以下函數:

    public static float applyDimension(int unit, float value,

                        DisplayMetrics metrics)

   {

        switch (unit) {

        case COMPLEX_UNIT_PX:

            return value;

        case COMPLEX_UNIT_DIP:

            return value * metrics.density;

        case COMPLEX_UNIT_SP:

            return value * metrics.scaledDensity;

        case COMPLEX_UNIT_PT:

            return value * metrics.xdpi * (1.0f/72);

        case COMPLEX_UNIT_IN:

            return value * metrics.xdpi;

        case COMPLEX_UNIT_MM:

            return value * metrics.xdpi * (1.0f/25.4f);

        }

        return 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

寬度

Pixels

高度

Pixels

尺寸

Range(inches)

屏幕密度

QVGA

240

320

2.6⑶.0

low

WQVGA

240

400

3.2⑶.5

low

FWQVGA 

240

432

3.5⑶.8

low

HVGA 

320

480

3.0⑶.5

Medium

WVGA 

480

800

3.3⑷.0

High

FWVGA

480

854

3.5⑷.0

High

WVGA

480

800

4.8⑸.5

Medium

FWVGA 

480

854

5.0⑸.8

Medium

備注

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

5、綜上所述    

  據px = dip * density / 160,則當屏幕密度為160時,px = dip
  根據 google 的建議,TextView 的字號最好使用 sp 做單位,而且查看TextView的源碼可知Android默許使用sp作為字號單位。將dip作為其他元素的單位。
url:
http://greatverve.cnblogs.com/archive/2011/12/27/Android-dip-dp-sp-pt-px.html

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美一级特黄毛片视频 | 日本不卡高清中文字幕免费 | 欧美色爽 | 伊人青青操 | 欧美刺激午夜性久久久久久久 | 国产色综合一区二区三区 | 欧美日本性 | 国产欧美一区二区三区在线看 | 亚洲一二区视频 | 波多野结衣资源在线观看 | 一级在线 | 欧洲 | 色尼玛亚洲综合 | 国产成人在线视频 | 欧美成人免费高清二区三区 | 国产成人精品日本亚洲18图 | 日本高清在线看 | 91刘亦菲精品福利在线 | 亚洲视频在线免费看 | 久草在线新首页 | 69视频在线观看xxxxx | 欧美人与物videos新另类性 | 极品美女一级毛片 | 日本天堂在线 | 午夜久久网 | 欧美天天| 国产欧美在线不卡 | 91久久精品国产91性色tv | 欧美啪啪毛片一区二区 | 手机看片成人 | free性欧美人与牛 | 偷自拍第一页 | 美国一区二区三区 | 男女xx00xx的视频免费观看 | xxxxx古代性xxxx| 欧美毛片视频 | 一级毛片在线完整免费观看 | 国产免费午夜a无码v视频 | 亚欧毛片基地国产毛片基地 | 欧洲妇女成人淫片aaa视频 | 亚洲综合久久综合激情久久 | 亚洲精品一二三区-久久 |