Android屏幕適配-基礎(chǔ)篇

Android屏幕適配-基礎(chǔ)篇
Android屏幕適配-應(yīng)用篇

重要概念

什么是屏幕尺寸、屏幕分辨率(px)、屏幕像素密度(dpi)?
什么是dp、dip、sp?dp與px的轉(zhuǎn)換?

在下面的內(nèi)容中我們將介紹這些概念。

一、什么是屏幕尺寸、屏幕分辨率(px)、屏幕像素密度(dpi)以及三者關(guān)系?

1、屏幕尺寸

含義:手機(jī)對(duì)角線的物理尺寸
單位:英寸(inch),1英寸=2.54cm
Android手機(jī)常見(jiàn)的尺寸有5寸、5.5寸、6寸等等

2、屏幕分辨率(px)

含義:手機(jī)在橫向、縱向上的像素點(diǎn)數(shù)總和,一般描述成屏幕的"寬x高”=AxB
單位:px(pixel),1px=1像素點(diǎn)
UI設(shè)計(jì)師的設(shè)計(jì)圖會(huì)以px作為統(tǒng)一的計(jì)量單位
Android手機(jī)常見(jiàn)的分辨率:320x480、480x800、720x1280、1080x1920、2560x1440

3、屏幕像素密度(dpi)

屏幕像素密度是指每英寸上的像素點(diǎn)數(shù),單位是dpi,即“dot per inch”的縮寫(xiě)。屏幕像素密度與屏幕尺寸和屏幕分辨率有關(guān),在單一變化條件下,屏幕尺寸越小、分辨率越高,像素密度越大,反之越小。

4、三者關(guān)系

一部手機(jī)的分辨率是寬x高,屏幕大小是以寸為單位,那么三者的關(guān)系是:


944365-2b5dc928ab334440.png

例如:假設(shè)一部手機(jī)的分辨率是1080x1920(px),屏幕大小是5寸,問(wèn)該手機(jī)的像素密度是多少?


944365-5f2509be9276460c.png

二、什么是dp、dip、sp?dp與px的轉(zhuǎn)換?

1、密度無(wú)關(guān)像素(dp、dpi)

含義:density-independent pixel,叫dp或dip,與終端上的實(shí)際物理像素點(diǎn)無(wú)關(guān)。Android開(kāi)發(fā)時(shí)用dp而不是px單位設(shè)置控件大小,是Android特有的單位
單位:dp,可以保證在不同屏幕像素密度的設(shè)備上顯示相同的效果

場(chǎng)景:假如同樣都是畫(huà)一條長(zhǎng)度是屏幕一半的線,如果使用px作為計(jì)量單位,那么在480x800分辨率手機(jī)上設(shè)置應(yīng)為240px;在320x480的手機(jī)上應(yīng)設(shè)置為160px,二者設(shè)置就不同了;如果使用dp為單位,在這兩種分辨率下,160dp都顯示為屏幕一半的長(zhǎng)度。

2、獨(dú)立比例像素(sp)

含義:scale-independent pixel,叫sp或sip
單位:sp

Android開(kāi)發(fā)時(shí)用此單位設(shè)置文字大小,可根據(jù)字體大小首選項(xiàng)進(jìn)行縮放
推薦使用12sp、14sp、18sp、22sp作為字體設(shè)置的大小,不推薦使用奇數(shù)和小數(shù),容易造成精度的丟失問(wèn)題;小于12sp的字體會(huì)太小導(dǎo)致用戶(hù)看不清

3、dp與px的轉(zhuǎn)換
android中的dp在渲染前會(huì)將dp轉(zhuǎn)為px,計(jì)算公式:
  density = dpi / 160;
  px = density * dp;
  px = dp * (dpi / 160);
  dp=px / (dpi / 160)
而dpi是根據(jù)屏幕真實(shí)的分辨率和尺寸來(lái)計(jì)算的,每個(gè)設(shè)備都可能不一樣的。

因?yàn)閡i設(shè)計(jì)師給你的設(shè)計(jì)圖是以px為單位的,Android開(kāi)發(fā)則是使用dp作為單位的,那么我們需要進(jìn)行轉(zhuǎn)換:

密度類(lèi)型 代表的分辨率(px) 屏幕密度(dpi) 換算(px/dp) 密度(density)
低密度(ldpi) 240x320 120 1dp=0.75px 0.75
中密度(mdpi) 320x480 160 1dp=1px 1
高密度(hdpi) 480x800 240 1dp=1.5px 1.5
超高密度(xhdpi) 720x1280 320 1dp=2px 2
超超高密度(xxhdpi) 1080x1920 480 1dp=3px 3
超超超高密度(xxxhdpi) 3840*2160 640 1dp=4px 4

在Android中,規(guī)定以160dpi(即屏幕分辨率為320x480)為基準(zhǔn):1dp=1px,比如設(shè)計(jì)圖是以720x1280 dpi:320為基準(zhǔn),某控件標(biāo)注寬為500px,那么我們?cè)趚ml文件中設(shè)置該控件的寬時(shí),應(yīng)設(shè)置為:500/(320/160) = 250dp。

三、關(guān)于ldpi,mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi

比如設(shè)計(jì)圖是以720x1280px,dpi:320為基準(zhǔn),標(biāo)注的某圖片大小為200*200px,那么應(yīng)獲取如下大小的圖片(如獲取最好的顯示效果,所有的尺寸都需要獲?。?/p>

Android手機(jī)屏幕標(biāo)準(zhǔn) 對(duì)應(yīng)圖片尺寸標(biāo)準(zhǔn)
xxxhdpi 3840*2160 400*400
xxhdpi 1920*1080 300*300
xhdpi 1280*720 200*200(設(shè)計(jì)圖基準(zhǔn))
hdpi 480*800 150*150
mdpi 480*320 100*100
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容