首先介紹幾個(gè)概念
屏幕分辨率
屏幕分辨率不是一個(gè)屏幕的概念寓娩,是手機(jī)屏幕寬度和高度兩個(gè)方向上的像素點(diǎn)的總和,單位是像素(pixel), 1px=1個(gè)像素點(diǎn)荸型,例子投储,htcdr6w手機(jī)是5寸的手機(jī),寬1080篱昔,高1920每强。他的分辨率要這樣表示,1080x1920州刽,含義寬度方向上有1080個(gè)像素點(diǎn)空执,高度方向上有1920個(gè)像素點(diǎn)。
像素密度
密度,即每英寸像素點(diǎn)的個(gè)數(shù)穗椅,單位dpi(注意辨绊,dpi),android開(kāi)發(fā)中g(shù)oogle規(guī)定
mdpi---160dpi(每英寸160dpi)
hdpi---240dpi(mdpi x 1.5)
xhdpi---320dpi(mdpi x 2)
xxhdpi---480dpi(mdpi x 3)
xxxhdpi---640dpi(mdpi x 4)
如何計(jì)算你自己手機(jī)的每英寸的像素點(diǎn)的個(gè)數(shù)即每英寸的像素
如果你的手機(jī)是1080 x 1920
1,先按照初中所學(xué)的求正方形對(duì)角線(xiàn)的公式(勾股定理)求出對(duì)角線(xiàn)的的像素
y=長(zhǎng)的平方 +寬的平方
再對(duì)y值開(kāi)根號(hào)匹表,得到w
2门坷,用w除以你的手機(jī)的尺寸宣鄙,比如 5英寸的手機(jī)就可以得到你的手機(jī)每英寸額像素點(diǎn)的個(gè)數(shù)了,就是你的手機(jī)每英寸的像素
android 屏幕密度(與像素?zé)o關(guān)默蚌,單位為 dp)
這也是我們android xml文件中使用dp就可以適配不同屏幕的原因冻晤。
舉個(gè)例子
最早的android手機(jī)的分辨率為320 x 480
通過(guò)計(jì)算像素密度可以得到,該分辨率的手機(jī)的每英寸的像素為160dpi绸吸,在這個(gè)像素密度下鼻弧,1dp=1px,即在320 x 480的手機(jī)分辨率上,1dp=1px惯裕。
其他的如下:
160dpi,1dp=1px;
240dpi,1dp=1.5px;
320dpi,1dp=2px;
480dpi,1dp=3px;
640dpi,1dp=4px;
這樣在android 開(kāi)發(fā)中xml文件中使用dp為單位温数,就可以適應(yīng)不同分辨率的手機(jī)
再次,加深記憶蜻势,手機(jī)分辨率是指手機(jī)屏幕長(zhǎng)撑刺,寬方向上的像素點(diǎn)的個(gè)數(shù);像素密度是每英寸有多少像素點(diǎn)握玛,屏幕密度與像素?zé)o關(guān)自適應(yīng)够傍,當(dāng)在320 x 480的屏幕分辨率上時(shí) 1dp=1px。
和px挠铲,dp沒(méi)有關(guān)系的sp
Scale Indelpendent Pixels,既 sp
android 開(kāi)發(fā)中冕屯,用此單位設(shè)置文字大小。
圖片適配
在設(shè)計(jì)圖時(shí)拂苹,對(duì)于不同像素密度的應(yīng)該有對(duì)應(yīng)的圖片大小安聘,我記得第一次負(fù)責(zé)整個(gè)項(xiàng)目時(shí),不太懂和美工說(shuō)做多大的圖瓢棒,我就瞎點(diǎn)浴韭,哎,當(dāng)我們新建一個(gè)工程時(shí)脯宿,有默認(rèn)的ic_launcher念颈,然后把它復(fù)制出來(lái),到桌面上连霉,右鍵屬性--詳細(xì)信息榴芳,就會(huì)出現(xiàn)圖片的像素大小。那個(gè)就是美工用ps等工具做圖的大小跺撼。
mdpi(48x48)
hdpi(72x72)
xhdpi(96x96)
xxhdpi(144x144)
xxxhdpi(192x192)
就寫(xiě)到這里吧窟感,這些東西在開(kāi)發(fā)中沒(méi)卵用,但是面試有時(shí)候會(huì)問(wèn)到歉井,比如:
請(qǐng)問(wèn)你知道對(duì)于不同的分辨率的手機(jī)google對(duì)于像素密度的規(guī)則是什么肌括。
你知道dp嗎,和px有啥區(qū)別。
像素密度和屏幕密度的區(qū)別谍夭。
dp和dpi有啥區(qū)別。
...
等等憨募,大同小異紧索。
本文到此結(jié)束希望對(duì)初學(xué)android的人有所幫助。大神請(qǐng)繞道菜谣,畢竟大神面試基本不會(huì)問(wèn)這些珠漂,啊哈哈。