安卓度量單位.docx_第1頁(yè)
安卓度量單位.docx_第2頁(yè)
安卓度量單位.docx_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

px、dip、sp區(qū)別和使用方法一、概述我們?cè)陧?yè)面布局的時(shí)候,經(jīng)常會(huì)設(shè)置容器的長(zhǎng)度,但是到底該使用哪個(gè)作為長(zhǎng)度的單位而懊惱。在Android中支持的描述大小區(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 pixelsbest for text size)帶比例的像素。pt(points)磅:1pt = 1/72英寸in(inches)英寸mm(millimeters)毫米二、詳解sp由于是放大像素,主要是用于字體顯示,由此根據(jù)google的建議,TextView的字體大小最好用sp做單位,而且查看TextView的源碼可知Android默認(rèn)使用水平作為字號(hào)單位。在Android中最常用到的還是px和dip。但是這兩個(gè)之間到底有什么區(qū)別呢?在HVGA屏density=160;QVGA屏density=120;WVGA屏density=240;WQVGA屏density=120 density值表示每英寸有多少個(gè)顯示點(diǎn),與分辨率是兩個(gè)概念。不同density下屏幕分辨率信息,以480dip*800dip的WVGA(density=240)為例。density=120時(shí) 屏幕實(shí)際分辨率為240px*400px(兩個(gè)點(diǎn)對(duì)應(yīng)一個(gè)分辨率)狀態(tài)欄和標(biāo)題欄高各19px或者25dip橫屏是屏幕寬度400px或者800dip,工作區(qū)域高度211px或者480dip豎屏?xí)r屏幕寬度240px或者480dip,工作區(qū)域高度381px或者775dipdensity=160時(shí) 屏幕實(shí)際分辨率為320px*533px(3個(gè)點(diǎn)對(duì)應(yīng)兩個(gè)分辨率)狀態(tài)欄和標(biāo)題欄高個(gè)25px或者25dip橫屏是屏幕寬度533px或者800dip,工作區(qū)域高度295px或者480dip豎屏?xí)r屏幕寬度320px或者480dip,工作區(qū)域高度508px或者775dipdensity=240時(shí) 屏幕實(shí)際分辨率為480px*800px(一個(gè)點(diǎn)對(duì)于一個(gè)分辨率)狀態(tài)欄和標(biāo)題欄高個(gè)38px或者25dip橫屏是屏幕寬度800px或者800dip,工作區(qū)域高度442px或者480dip豎屏?xí)r屏幕寬度480px或者480dip,工作區(qū)域高度762px或者775dipapk的資源包中,當(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)簽的資源是各種分辨率情況下共用的。*引用 Android上dip、dp、px、sp等單位說(shuō)明本文引用自shixin20051108Android上dip、dp、px、sp等單位說(shuō)明dip: device independent pixels(設(shè)備獨(dú)立像素). 不同設(shè)備有不同的顯示效果,這個(gè)和設(shè)備硬件有關(guān),一般我們?yōu)榱酥С諻VGA、HVGA和QVGA 推薦使用這個(gè),不依賴(lài)像素。px: pixels(像素). 不同設(shè)備顯示效果相同,一般我們HVGA代表320x480像素,這個(gè)用的比較多。pt: point,是一個(gè)標(biāo)準(zhǔn)的長(zhǎng)度單位,1pt1/72英寸,用于印刷業(yè),非常簡(jiǎn)單易用;sp: scaled pixels(放大像素). 主要用于字體顯示best for textsize。=關(guān)于換算(以 sp 和 pt為例)查看 TextView 等類(lèi)的源碼,可知:case COMPLEX_UNIT_PX:return value;case COMPLEX_UNIT_SP:return value * metrics.scaledDensity;case COMPLEX_UNIT_PT:return value * metrics.xdpi * (1.0f/72);scaledDensity = DENSITY_DEVICE / (float) DENSITY_DEFAULT;xdpi = DENSITY_DEVICE;DENSITY_DEFAULT = DENSITY_MEDIUM = 160;=所以: 假設(shè) pt 和 sp 取相同的值 1,則可設(shè) 1pt 和 1sp 之間系數(shù)為x,1 * DENSITY_DEVICE / 72 = x * 1 * DENSITY_DEVICE / 160 =>x = 160 / 72 = 2.2222也就是說(shuō)在 Android 中, 1pt 大概等于 2.22sp=什么是Dip和Sp過(guò)去,程序員通常以像素為單位設(shè)計(jì)計(jì)算機(jī)用戶(hù)界面。例如,定義一個(gè)寬度為300像素的表單字段,列之間的間距為5個(gè)像素,圖標(biāo)大小為1616像素等。這樣處理的問(wèn)題在于,如果在一個(gè)每英寸點(diǎn)數(shù)(dpi)更高的新顯示器上運(yùn)行該程序,則用戶(hù)界面會(huì)顯得很小。在有些情況下,用戶(hù)界面可能會(huì)小到難以看清內(nèi)容。與分辨率無(wú)關(guān)的度量單位可以解決這一問(wèn)題。Android支持下列所有單位。px(像素):屏幕上的點(diǎn)。in(英寸):長(zhǎng)度單位。mm(毫米):長(zhǎng)度單位。pt(磅):1/72英寸。dp(與密度無(wú)關(guān)的像素):一種基于屏幕密度的抽象單位。在每英寸160點(diǎn)的顯示器上,1dp = 1px。dip:與dp相同,多用于android/ophone示例中。sp(與刻度無(wú)關(guān)的像素):與dp類(lèi)似,但是可以根據(jù)用戶(hù)的字體大小首選項(xiàng)進(jìn)行縮放。為了使用戶(hù)界面能夠在現(xiàn)在和將來(lái)的顯示器類(lèi)型上正常顯示,建議大家始終使用sp作為文字大小的單位,將dip作為其他元素的單位。當(dāng)然,也可以考慮使用矢量圖形,而不是用位圖*dip: device independent pixels(設(shè)備獨(dú)立像素).不同設(shè)備有不同的顯示效果,這個(gè)和設(shè)備硬件有關(guān),一般我們?yōu)榱酥С諻VGA、HVGA和QVGA 推薦使用這個(gè),不依賴(lài)像素。px: pixels(像素).不同設(shè)備顯示效果相同,一般我們HVGA代表320x480像素,這個(gè)用的比較多。pt: point,是一個(gè)標(biāo)準(zhǔn)的長(zhǎng)度單位,1pt1/72英寸,用于印刷業(yè),非常簡(jiǎn)單易用;sp: scaled pixels(放大像素).主要用于字體顯示best for textsize。由此,根據(jù) google 的建議,TextView 的字號(hào)最好使用 sp 做單位,而且查看TextView的源碼可知 Android 默認(rèn)使用 sp 作為字號(hào)單位。在 Android 中, 1pt 大概等于 2.22sp以上供參考,如果 UI 能夠以 sp為單位提供設(shè)計(jì)是最好的,如果設(shè)計(jì)中沒(méi)有 sp的概念,則開(kāi)發(fā)人員也可以通過(guò)適當(dāng)?shù)膿Q算取近似值。過(guò)去,程序員通常以像素為單位設(shè)計(jì)計(jì)算機(jī)用戶(hù)界面。例如,定義一個(gè)寬度為300像素的表單字段,列之間的間距為5個(gè)像素,圖標(biāo)大小為1616像素等。這樣處理的問(wèn)題在于,如果在一個(gè)每英寸點(diǎn)數(shù)(dpi)更高的新顯示器上運(yùn)行該程序,則用戶(hù)界面會(huì)顯得很小。在有些情況下,用戶(hù)界面可能會(huì)小到難以看清內(nèi)容。與分辨率無(wú)關(guān)的度量單位可以解決這一問(wèn)題。Android支持下列所有單位。px(像素):屏幕上的點(diǎn)。in(英寸):長(zhǎng)度單位。mm(毫米):長(zhǎng)度單位。pt(磅):1/72英寸。dp(與密度無(wú)關(guān)的像素):一種基于屏幕密度的抽象單位。在每英寸160點(diǎn)的顯示器上,1dp = 1px。dip:與dp相同,多用于android/ophone示例中。sp(與刻度無(wú)關(guān)的像素):與dp類(lèi)似,但是可以根據(jù)用戶(hù)的字體大小首選項(xiàng)進(jìn)行縮放。分辨率:整個(gè)屏是多少點(diǎn),比如800x480,它是對(duì)于軟件來(lái)說(shuō)的顯示單位,以px為單位的點(diǎn)。 density(密度)值表示每英寸有多少個(gè)顯示點(diǎn),與分辨率是兩個(gè)概念。apk的資源包中,當(dāng)屏幕density=240時(shí)使用hdpi標(biāo)簽的資源當(dāng)屏幕density=160時(shí),使用mdpi標(biāo)簽的資源當(dāng)屏幕density=120時(shí),使用ldpi標(biāo)簽的資源。一般android設(shè)置長(zhǎng)度和寬度多用dip

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論