從原理開始介紹一下移動端設(shè)計尺寸規(guī)范右鍵“在新標(biāo)簽頁中打開圖片”看
初涉移動端設(shè)計和開發(fā)的同學(xué)們贺喝,基本都會在尺寸問題上糾結(jié)好一陣子才能摸到頭緒至壤。我也花了很長時間才弄明白拣挪,感覺有必要寫一篇足夠通俗易懂的教程來幫助大家梦鉴。從原理說起集绰,理清關(guān)于尺寸的所有細(xì)節(jié)错妖。由于是寫給初學(xué)者的绿鸣,所以不要嫌我啰嗦。
推薦配合這個閱讀:《 最新Android & iOS設(shè)計尺寸規(guī)范 》
現(xiàn)象
首先說現(xiàn)象暂氯,大家都知道移動端設(shè)備屏幕尺寸非常多潮模,碎片化嚴(yán)重。尤其是Android痴施,你會聽到很多種分辨率:480x800, 480x854, 540x960, 720x1280, 1080x1920擎厢,而且還有傳說中的2K屏。近年來iPhone的碎片化也加劇了:640x960, 640x1136, 750x1334, 1242x2208辣吃。
不要被這些尺寸嚇倒动遭。實際上大部分的app和移動端網(wǎng)頁,在各種尺寸的屏幕上都能正常顯示神得。說明尺寸的問題一定有解決方法厘惦,而且有規(guī)律可循。
像素密度
要知道哩簿,屏幕是由很多像素點組成的宵蕉。之前提到那么多種分辨率酝静,都是手機屏幕的實際像素尺寸。比如480x800的屏幕羡玛,就是由800行形入、480列的像素點組成的。每個點發(fā)出不同顏色的光缝左,構(gòu)成我們所看到的畫面亿遂。而手機屏幕的物理尺寸,和像素尺寸是不成比例的渺杉。最典型的例子蛇数,iPhone 3gs的屏幕像素是320x480,iPhone 4s的屏幕像素是640x960是越。剛好兩倍耳舅,然而兩款手機都是3.5英寸的。
所以倚评,我們要引入最重要的一個概念:像素密度浦徊,也就是PPI(pixels per inch)。這項指標(biāo)是連接數(shù)字世界與物理世界的橋梁天梧。
Pixels per inch盔性,準(zhǔn)確的說是每英寸的長度上排列的像素點數(shù)量。1英寸是一個固定長度呢岗,等于2.54厘米冕香,大約是食指最末端那根指節(jié)的長度。像素密度越高后豫,代表屏幕顯示效果越精細(xì)悉尾。Retina屏比普通屏清晰很多,就是因為它的像素密度翻了一倍挫酿。
倍率與邏輯像素
再用iPhone 3gs和4s來舉例构眯。假設(shè)有個郵件列表界面,我們不妨按照PC端網(wǎng)頁設(shè)計的思維來想象早龟。3gs上大概只能顯示4-5行惫霸,4s就能顯示9-10行,而且每行會變得特別寬拄衰。但兩款手機其實是一樣大的它褪。如果照這種方式顯示,3gs上剛剛好的效果翘悉,在4s上就會小到根本看不清字茫打。
在現(xiàn)實中,這兩者效果卻是一樣的。這是因為Retina屏幕把2x2個像素當(dāng)1個像素使用老赤。比如原本44像素高的頂部導(dǎo)航欄轮洋,在Retina屏上用了88個像素的高度來顯示。導(dǎo)致界面元素都變成2倍大小抬旺,反而和3gs效果一樣了弊予。畫質(zhì)卻更清晰。
在以前开财,iOS應(yīng)用的資源圖片中汉柒,同一張圖通常有兩個尺寸。你會看到文件名有的帶@2x字樣责鳍,有的不帶碾褂。其中不帶@2x的用在普通屏上,帶@2x的用在Retina屏上历葛。只要圖片準(zhǔn)備好正塌,iOS會自己判斷用哪張,Android道理也一樣恤溶。
由此可以看出乓诽,蘋果以普通屏為基準(zhǔn)税产,給Retina屏定義了一個2倍的倍率(iPhone 6plus除外莽囤,它達(dá)到了3倍)。實際像素除以倍率颓遏,就得到邏輯像素尺寸孵坚。只要兩個屏幕邏輯像素相同粮宛,它們的顯示效果就是相同的。
Android的解決方法類似卖宠,但更復(fù)雜一些。因為Android屏幕尺寸實在太多忧饭,分辨率高低跨度非常大扛伍,不像蘋果只有那么幾款固定設(shè)備、固定尺寸词裤。所以Android把各種設(shè)備的像素密度劃成了好幾個范圍區(qū)間刺洒,給不同范圍的設(shè)備定義了不同的倍率,來保證顯示效果相近吼砂。像素密度概念雖然重要逆航,但用不著我們自己算,iOS與Android都幫我們算好了渔肩。
如圖所示因俐,像素密度在120左右的屏幕歸為ldpi,160左右的歸為mdpi,以此類推抹剩。這樣撑帖,所有的Android屏幕都找到了自己的位置,并賦予了相應(yīng)的倍率:
ldpi [0.75倍]
mdpi [1倍]
hdpi [1.5倍]
xhdpi [2倍]
xxhdpi [3倍]
xxxhdpi [4倍]
各型號iPhone的倍率比較簡單澳眷,我們后面會講到胡嘿。那么Android手機那么多,具體怎么分钳踊?哪些手機是幾倍的倍率呢衷敌?我們先看一張表,這是友盟2014年10月到2015年03月的數(shù)據(jù):
就目前市場狀況而言拓瞪,各種手機的分辨率可以這樣粗略判斷逢享。雖然不全面,但至少在1年內(nèi)都還有一定的參考意義:
ldpi 如今已絕跡吴藻,不用考慮
mdpi [320x480](市場份額不足5%瞒爬,新手機不會有這種倍率,屏幕通常都特別泄当ぁ)
hdpi [480x800侧但、480x854、540x960](早年的低端機航罗,屏幕在3.5英寸檔位禀横;如今的低端機,屏幕在4.7-5.0英寸檔位)
xhdpi [720x1280](早年的中端機粥血,屏幕在4.7-5.0英寸檔位柏锄;如今的中低端機,屏幕在5.0-5.5英寸檔位)
xxhdpi [1080x1920](早年的高端機复亏,如今的中高端機趾娃,屏幕通常都在5.0英寸以上)
xxxhdpi [1440x2560](極少數(shù)2K屏手機,比如Google Nexus 6)
自然地缔御,以1倍的mdpi作為基準(zhǔn)抬闷。像素密度更高或者更低的設(shè)備,只需乘以相應(yīng)的倍率耕突,就能得到與基準(zhǔn)倍率近似的顯示效果笤成。
不過需要注意的是,Android設(shè)備的邏輯像素尺寸并不統(tǒng)一眷茁。比如兩種常見的屏幕480x800和1080x1920炕泳,它們分別屬于hdpi和xxhdpi。除以各自倍率1.5倍和3倍上祈,得到邏輯像素為320x533和360x640培遵。很顯然浙芙,后者更寬更高,能顯示更多內(nèi)容荤懂。所以茁裙,即使有倍率的存在,各種Android設(shè)備的顯示效果仍然無法做到完全一致节仿。
單位
不難發(fā)現(xiàn)晤锥,真正決定顯示效果的,是邏輯像素尺寸廊宪。為此矾瘾,iOS和Android平臺都定義了各自的邏輯像素單位。iOS的尺寸單位為pt箭启,Android的尺寸單位為dp壕翩。說實話,兩者其實是一回事傅寡。
單位之間的換算關(guān)系隨倍率變化:
1倍:1pt=1dp=1px(mdpi放妈、iPhone 3gs)
1.5倍:1pt=1dp=1.5px(hdpi)
2倍:1pt=1dp=2px(xhdpi、iPhone 4s/5/6)
3倍:1pt=1dp=3px(xxhdpi荐操、iPhone 6)
4倍:1pt=1dp=4px(xxxhdpi)
單位決定了我們的思考方式芜抒。在設(shè)計和開發(fā)過程中,應(yīng)該盡量使用邏輯像素尺寸來思考界面托启。設(shè)計Android應(yīng)用時宅倒,有的設(shè)計師喜歡把畫布設(shè)為1080x1920,有的喜歡設(shè)成720x1280屯耸。給出的界面元素尺寸就不統(tǒng)一了拐迁。Android的最小點擊區(qū)域尺寸是48x48dp,這就意味著在xhdpi的設(shè)備上疗绣,按鈕尺寸至少是96x96px线召。而在xxhdpi設(shè)備上,則是144x144px持痰。
無論畫布設(shè)成多大灶搜,我們設(shè)計的是基準(zhǔn)倍率的界面樣式,而且開發(fā)人員需要的單位都是邏輯像素工窍。所以為了保證準(zhǔn)確高效的溝通,雙方都需要以邏輯像素尺寸來描述和理解界面前酿,無論是在標(biāo)注圖還是在日常溝通中患雏。不要再說“底部標(biāo)簽欄的高度是96像素,我是按照xhdpi做的”這樣的話了罢维。
Web怎么辦
移動端頁面的絕對單位仍然是px淹仑,至少代碼里這么寫丙挽,但它的道理也和app一樣。由于像素密度是設(shè)備本身的固有屬性匀借,它會影響到設(shè)備中的所有應(yīng)用颜阐,包括瀏覽器。前端技術(shù)可以善加利用設(shè)備的像素密度吓肋,只需一行代碼凳怨,瀏覽器便會使用app的顯示方式來渲染頁面。根據(jù)像素密度是鬼,按相應(yīng)倍率縮放肤舞。
可以通過這個測試頁面http://greenzorro.github.io/demo/basic/響應(yīng)式斷點.html來看看你的移動設(shè)備屏幕寬度,這是邏輯像素寬度均蜜。
以iPhone 5s為例李剖,屏幕的分辨率是640x1136,倍率是2囤耳。瀏覽器會認(rèn)為屏幕的分辨率是320x568篙顺,仍然是基準(zhǔn)倍率的尺寸。所以在制作頁面時充择,只需要按照基準(zhǔn)倍率來就行了德玫。無論什么樣的屏幕,倍率是多少聪铺,都按邏輯像素尺寸來設(shè)計和開發(fā)頁面化焕。只不過在準(zhǔn)備資源圖的時候,需要準(zhǔn)備2倍大小的圖铃剔,通過代碼把它縮成1倍大小顯示撒桨,才能保證清晰。
實際應(yīng)用
大家最關(guān)心的還是實際運用键兜,畫布該怎么設(shè)置凤类。我們就iOS、Android普气、Web三個平臺來分別梳理一下谜疤。不過在這之前,我要為使用PS進(jìn)行設(shè)計的朋友介紹一個小技巧现诀。
之前我說過夷磕,我們要以邏輯像素尺寸來思考界面。體現(xiàn)到設(shè)計過程中仔沿,就是要把單位設(shè)置成邏輯像素坐桩。打開PS的首選項——單位與標(biāo)尺界面,把尺寸和文字單位都改成點(Point)封锉。這里的點也就是pt绵跷,無論設(shè)計iOS膘螟、Android還是Web應(yīng)用,單位都用它碾局。當(dāng)然荆残,各平臺單位名稱還是要記住的。這里我們用的只是它的原理净当,不用在意名稱内斯。
要調(diào)節(jié)倍率,則通過圖像大小里的DPI來控制蚯瞧。這個DPI嘿期,其實就是PPI,像素密度埋合。有個常識大家都知道备徐,屏幕上的設(shè)計DPI設(shè)成72,印刷品設(shè)計DPI設(shè)成300甚颂。為什么是這兩個數(shù)字蜜猾?
首先說300,這和人眼的分辨能力有關(guān)振诬。由于1英寸是固定長度蹭睡,每1英寸有多少個像素點決定了畫質(zhì)清晰程度。之前說過赶么,這就是像素密度肩豁,也就是DPI。DPI達(dá)到300以上辫呻,其細(xì)膩程度就會給人真實感清钥,像真實世界中的物件。相反放闺,DPI只有10的話祟昭,在你一個食指指節(jié)大小的長度內(nèi)只有10個像素,這明顯就是馬賽克了怖侦。所以印刷品要設(shè)成300篡悟,才能保證清晰。
再說72匾寝,這有一定的歷史原因搬葬。最早的圖形設(shè)計是在mac電腦上進(jìn)行的,mac本身的顯示器分辨率就是72艳悔。PS中把圖像DPI也設(shè)成72踩萎,就能保證屏幕上顯示的尺寸和打印尺寸相同,便于設(shè)計很钓。72的PC顯示器分辨率逐漸成為一種默認(rèn)的行業(yè)標(biāo)準(zhǔn)香府,這套規(guī)則就這么沿用下來。
現(xiàn)在回到正題码倦,我們怎么通過DPI來調(diào)節(jié)倍率企孩?既然屏幕本身的分辨率是72,DPI設(shè)成72剛好是1倍尺寸袁稽,那設(shè)成72的兩倍就是倍率為2的屏幕了勿璃,就這么簡單。
下面來看看3個平臺各自的畫布設(shè)置:
iPhone
iPhone的屏幕尺寸各不相同推汽,我說的是邏輯像素尺寸补疑,這確實是讓人很頭疼的事情。如果想用一套設(shè)計涵蓋所有iPhone歹撒,就要選擇邏輯像素折中的機型莲组。
從市場占有率數(shù)據(jù)來看,目前最多的是iPhone5/5s的屏幕暖夭。倍率為2锹杈,邏輯像素320x568。上升勢頭最猛迈着,未來有望登上第一的是iPhone 6的屏幕竭望。倍率為2,邏輯像素375x667裕菠。
按照這兩種尺寸來設(shè)計咬清,都是比較主流的做法∨耍可以兼顧短一些的iPhone 4s旧烧,大一點的6 plus也不會過于空曠。
不過在切圖的時候要注意萤彩,由于iPhone 6 plus的3倍圖是由2倍圖放大而來粪滤,所以位圖要注意保證清晰。
Android
都說Android碎片化嚴(yán)重雀扶,但它現(xiàn)在反而比iOS好處理杖小。因為如今的Android屏幕邏輯像素已經(jīng)趨于統(tǒng)一了:360x640,就看你設(shè)成幾倍了愚墓。想以xhdpi為準(zhǔn)予权,就把DPI設(shè)成72x2=144。想以xxhdpi為準(zhǔn)浪册,就把DPI設(shè)成72x3=216扫腺。
對于那些比較老的低端機,寬度是480px的那批村象,畫面確實會小一些笆环,顯示內(nèi)容會更少攒至。稍微留意一下,重要內(nèi)容盡量保持在界面中上部分躁劣。
當(dāng)然迫吐,這些機型不出一年就會被邊緣化,基本淘汰≌送現(xiàn)在能運轉(zhuǎn)的也是當(dāng)作功能機在用志膀,軟件多了必卡無疑,用戶體驗無從談起鳖擒。不作考慮也是OK的溉浙。
Web
手機端網(wǎng)頁就沒有統(tǒng)一標(biāo)準(zhǔn)了,比較流行的做法是按照iPhone 5的尺寸來設(shè)計蒋荚。倍率2戳稽,邏輯像素320x568。
這樣的做法比較實在圆裕,倍率2的屏幕無論在iOS還是Android方面都是主流广鳍,而且又是2倍屏幕中邏輯像素最小的。所以圖片的尺寸可以保持在較小的水平吓妆,頁面加載速度快赊时。當(dāng)然,缺點就是在倍率3的設(shè)備上看行拢,圖片不是特別清晰祖秒。
如果追求圖片質(zhì)量,愿意犧牲加載速度舟奠,那么可以按照最大的屏幕來設(shè)計竭缝。也就是iPhone 6 plus的尺寸,倍率3沼瘫,邏輯像素414x736抬纸。
總結(jié)
移動端的尺寸比PC端復(fù)雜,關(guān)鍵就在倍率耿戚。但也正因為倍率的存在湿故,把大大小小的屏幕拉回到同一水平線,得以保證一套設(shè)計適應(yīng)各種屏幕膜蛔。站在這條水平線的角度看坛猪,會發(fā)現(xiàn)它很好理解。
http://www.admin10000.com/document/6343.html