


全文預(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)商業(yè)計(jì)劃書(shū)
- 跨端口安全防護(hù)的動(dòng)態(tài)響應(yīng)機(jī)制設(shè)計(jì)-洞察闡釋
- 安全教育課試題及答案
- 乘公交車(chē)安全試題及答案
- 小學(xué)五年級(jí)下冊(cè)音樂(lè)教案
- 如何根據(jù)臉型選擇適合的發(fā)型
- 2025合同協(xié)議書(shū)填寫(xiě)范本
- 非煤礦山開(kāi)采權(quán)出讓合同詳盡范文
- 醫(yī)療機(jī)構(gòu)代理記賬與醫(yī)療行業(yè)政策解讀服務(wù)協(xié)議
- 2025【范本】物業(yè)服務(wù)合同協(xié)議
- 2025年下半年江蘇省南通海門(mén)區(qū)應(yīng)急管理局招聘政府購(gòu)買(mǎi)服務(wù)人員2人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 全國(guó)縣中頭雁教師崗位計(jì)劃人員推表
- 幼兒園小班科學(xué)《汽車(chē)嘟嘟》課件
- 會(huì)計(jì)理論數(shù)智時(shí)代變革邏輯:范式創(chuàng)新與結(jié)構(gòu)重塑
- 2025年人教版小學(xué)五年級(jí)下冊(cè)奧林匹克數(shù)學(xué)競(jìng)賽試卷(附參考答案)
- 血液內(nèi)科入科教育大綱
- 現(xiàn)農(nóng)莊可行性研究報(bào)告
- 廢舊金屬代賣(mài)合同協(xié)議
- 活板(含答案與解析)-2024年中考語(yǔ)文之文言文對(duì)比閱讀(全國(guó)版)
- 2025年幼兒教師通識(shí)性知識(shí)培訓(xùn)考試題庫(kù)(附答案)
- 儲(chǔ)能現(xiàn)場(chǎng)安全培訓(xùn)
評(píng)論
0/150
提交評(píng)論