如何進(jìn)行不同屏幕的適配刺洒,dp,pt逆航,px,sp是什么意思因俐,如何使用

1.基礎(chǔ)概念

屏幕大小:即屏幕對(duì)角的的長(zhǎng)度抹剩。1英寸=2.54厘米,那么一個(gè)5寸的手機(jī)的對(duì)角線長(zhǎng)度就是5 X 2.54=12.7厘米澳眷。

分辨率:即屏幕的像素點(diǎn)個(gè)數(shù),例如:一個(gè)屏幕的分辨率為320*480即這個(gè)屏幕上有320 X 480個(gè)像素點(diǎn)钳踊。

dpi:即dot per inch的縮寫(xiě),就是每一英寸的像素?cái)?shù)拓瞪,也叫做像素密度。這個(gè)值越大祭埂,圖片就越清晰,反之則模糊沟堡。例如手機(jī)屏幕的物理尺寸為1.5英寸x2英寸,屏幕分辨率為240x320矢空,則我們可以計(jì)算出在這部手機(jī)的屏幕上,每一英寸包含的像素點(diǎn)的數(shù)量為240/1.5=160dpi(橫向)或320/2=160dpi(縱向)屁药,160dpi就是這部手機(jī)屏幕的像素密度。手機(jī)屏幕像素密度的計(jì)算公式:手機(jī)像素密度(dpi)=(橫向or縱向)分辨率 / (橫向or縱向)屏幕物理尺寸

dp:也叫dip酿箭,即device independent pixels的縮寫(xiě),就是設(shè)備獨(dú)立像素缭嫡,也叫邏輯像素。由于Android手機(jī)的屏幕有各種大小和不同的分辨率妇蛀,因此不能直接使用px物理像素為單位笤成,因?yàn)橹苯邮褂脮?huì)導(dǎo)致布局在低分辨率的屏幕顯示不全眷茁,在高分辨率的屏幕上留白。而使用dp這個(gè)邏輯像素就會(huì)使不同分辨率的屏幕顯示的布局盡量一致上祈,從而避免這樣的問(wèn)題出現(xiàn)。所以Android開(kāi)發(fā)使用的邏輯像素單位登刺。

pt:即point,就是一個(gè)標(biāo)準(zhǔn)的長(zhǎng)度單位纸俭,1pt=1/72英寸,ios開(kāi)發(fā)使用的單位

px:即pixels的縮寫(xiě)掉蔬,就是像素矾瘾, 1px代表屏幕上一個(gè)物理像素點(diǎn)女轿,在不同分辨率的設(shè)備上像素點(diǎn)的大小不同壕翩,同尺寸的屏幕分辨率越高,像素點(diǎn)越小放妈,反之越大。px像素是Web開(kāi)發(fā)中常用的單位芜抒。

sp:即scaled pixels的縮寫(xiě),就是放大像素宅倒。主要用于設(shè)置字體的大小。谷歌開(kāi)發(fā)建議文字的大小單位最好使用sp拐迁,其目的是當(dāng)系統(tǒng)設(shè)置字體大小時(shí),app的文字能隨著系統(tǒng)的設(shè)置而放大縮小线召,但實(shí)際開(kāi)發(fā)過(guò)程中,如果沒(méi)有對(duì)系統(tǒng)不同大小的字體設(shè)計(jì)多套布局的話缓淹,不建議使用sp塔逃,因?yàn)楫?dāng)文字隨系統(tǒng)設(shè)置放大縮小時(shí)布局會(huì)混亂前酿。例如某個(gè)Text布局給了一個(gè)30dp的固定高度,內(nèi)容文字的大小使用sp為單位罢维,當(dāng)系統(tǒng)設(shè)置為最大號(hào)的字體時(shí),Text文字大小隨之變大會(huì)導(dǎo)致文字高度大于Text高度從而顯示不全肺孵。

2.單位轉(zhuǎn)換

px轉(zhuǎn)為dp
dips=(pixs*160)/densityDpi

private static final float density = mContext.getResources().getDisplayMetrics().density;
/**
 * px轉(zhuǎn)成dp
 * @param pxValue
 */
public static int px2dip(float pxValue) {
    return (int) (pxValue / density + 0.5f);
}

dp轉(zhuǎn)為px
pixs =dips * (densityDpi/160).

private static final float density = mContext.getResources().getDisplayMetrics().density;
 
/**
 * dp轉(zhuǎn)成px
 * @param dipValue
 */
public static int dip2px(float dipValue) {
    return (int) (dipValue * density + 0.5f);
}

在實(shí)際轉(zhuǎn)化的代碼中需要加上0.5f是為了在轉(zhuǎn)化為int類型的時(shí)候,將計(jì)算結(jié)果賦值為它最接近的正數(shù)平窘。

3.Android如何適配

首先系統(tǒng)會(huì)根據(jù)不同分辨率的手機(jī)選擇不同的資源文件,因此需要設(shè)計(jì)多套UI和多套資源文件瑰艘。
drawable-ldpi: 低分辨率屏幕密度為120dpi的手機(jī)設(shè)備(1dp = 0.75px)
drawable-mdpi: 中分辨率屏幕密度為160dpi的手機(jī)設(shè)備(此為baseline,其他均以此為基準(zhǔn)紫新,在此設(shè)備上,1dp = 1px)
drawable-hdpi: 高分辨率屏幕密度為240dpi的手機(jī)設(shè)備 (1dp = 1.5px)
drawable-xhdpi: 更高分辨率屏幕密度為320dpi的手機(jī)設(shè)備 (1dp = 2px)
drawable-xxhdpi:超高分辨率屏幕密度為480dpi的手機(jī)設(shè)備 (1dp = 3px)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末囤耳,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子偶芍,更是在濱河造成了極大的恐慌,老刑警劉巖匪蟀,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異材彪,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)查刻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)穗泵,“玉大人,你說(shuō)我怎么就攤上這事佃延∫目模” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵坐桩,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我绵跷,道長(zhǎng),這世上最難降的妖魔是什么碾局? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任奴艾,我火速辦了婚禮净当,結(jié)果婚禮上蕴潦,老公的妹妹穿的比我還像新娘。我一直安慰自己潭苞,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布萄传。 她就那樣靜靜地躺著蜜猾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蹭睡。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天肩豁,我揣著相機(jī)與錄音,去河邊找鬼清钥。 笑死,一個(gè)胖子當(dāng)著我的面吹牛祟昭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播篡悟,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼匾寝,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼荷腊!你這毒婦竟也來(lái)了艳悔?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤猜年,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后码倦,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡袁稽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年擒抛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了推汽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片歧沪。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖诊胞,靈堂內(nèi)的尸體忽然破棺而出暖夭,到底是詐尸還是另有隱情撵孤,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布裕菠,位于F島的核電站,受9級(jí)特大地震影響闭专,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜影钉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望雀扶。 院中可真熱鬧,春花似錦、人聲如沸愚墓。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至村象,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間厚者,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工库菲, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人熙宇。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像烫止,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子馆蠕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容