隨筆 - 33, 文章 - 0, 評(píng)論 - 12, 引用 - 0
          數(shù)據(jù)加載中……

          Android中關(guān)于dip和px以及轉(zhuǎn)換的總結(jié)

          我們?cè)陧?yè)面布局的時(shí)候,經(jīng)常會(huì)設(shè)置容器的長(zhǎng)度,但是到底該使用哪個(gè)作為長(zhǎng)度的單位而懊惱。在A(yíng)ndroid中支持的描述大小區(qū)域的類(lèi)型有以下幾種:

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

          dip(device independent pixels)——設(shè)備獨(dú)立像素:這個(gè)和設(shè)備硬件有關(guān),一般我們?yōu)榱酥С諻CGA、HVGA和QVGA推薦使用這個(gè),不依賴(lài)于像素。等同于dp。

          sp(scaled pixels—best for text size)——帶比例的像素。

          pt(points)——磅:1pt = 1/72英寸

          in(inches)——英寸

          mm(millimeters)——毫米

          到底px和dip有什么區(qū)別呢?

          dip != px

          主要是針對(duì)不同設(shè)備而言的。在Density是160的設(shè)備上,比如用AVDManager創(chuàng)建的默認(rèn)模擬器,dip和px是一樣的但是如果同樣的代碼,換到不同Density的設(shè)備上,比如換到一個(gè)Density是240的設(shè)備上,dip和px體現(xiàn)出來(lái)的大小就不一樣了。px不管在什么樣的設(shè)備上都是那樣長(zhǎng),但是dip會(huì)根據(jù)設(shè)備變化;WQVGA屏density=120;QVGA屏density=120;HVGA屏density=160;WVGA屏density=240;density值表示每英寸有多少個(gè)顯示點(diǎn),與分辨率是兩個(gè)概念。

          當(dāng)屏幕density=240時(shí)使用hdpi標(biāo)簽的資源
          當(dāng)屏幕density=160時(shí),使用mdpi標(biāo)簽的資源
          當(dāng)屏幕density=120時(shí),使用ldpi標(biāo)簽的資源。

          不加任何標(biāo)簽的資源是各種分辨率情況下共用的。布局時(shí)盡量使用單位dip,少使用px。

          換算公式為:
          pixs =dips * (densityDpi/160). 
          dips=(pixs*160)/densityDpi

          如何獲得設(shè)備的屏幕分辨率和屏幕密度?
          例如分辨率為480*800,密度為240的設(shè)備,方法如下


          DisplayMetrics dm =getResources().getDisplayMetrics();
          dm.densityDpi=240
          dm.widthPixels=480
          dm.heightPixels=800

          posted on 2013-02-01 10:08 建華 閱讀(5005) 評(píng)論(2)  編輯  收藏

          評(píng)論

          # re: Android中關(guān)于dip和px以及轉(zhuǎn)換的總結(jié) [未登錄](méi)  回復(fù)  更多評(píng)論   

          eeeeeeeee
          2014-05-07 15:39 | w

          # re: Android中關(guān)于dip和px以及轉(zhuǎn)換的總結(jié)   回復(fù)  更多評(píng)論   

          re: Android中關(guān)于dip和px以及轉(zhuǎn)換的總結(jié)

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 高安市| 定日县| 洪湖市| 温宿县| 科技| 西充县| 富裕县| 全南县| 长治县| 祁连县| 三穗县| 密云县| 西贡区| 余姚市| 汪清县| 海阳市| 永新县| 黎城县| 行唐县| 博乐市| 中超| 绵阳市| 正阳县| 南通市| 邳州市| 乌拉特中旗| 永修县| 正宁县| 吴川市| 祁东县| 额济纳旗| 佛教| 绥宁县| 炉霍县| 高邮市| 仙游县| 寻乌县| 鹤山市| 安塞县| 凌源市| 通化县|