sales2@gdinyan.com
86-20-86379008

移動端尺寸基礎知識科普指南

  • 發布時間: 2015-04-29 11:29:09
  • 浏覽次數: 1674

mobile-ui-measurement-guideline-1

現象

首先說現象,大家都知道(dào)移動端設備屏幕尺寸非常多,碎片化嚴重。尤其是Android,你會聽到很多種分辨率:480×800, 480×854, 540×960, 720×1280, 1080×1920,而且還有傳說中的(de)2K屏。近年(nián)來iPhone的(de)碎片化也加劇了:640×960, 640×1136, 750×1334, 1242×2208。

不要被這些尺寸吓倒。實際上大部分的(de)app和(hé)移動端網頁,在各種尺寸的(de)屏幕上都能正常顯示。說明尺寸的(de)問題一(yī)定有解決方法,而且有規律可(kě)循。

像素密度

要知道(dào),屏幕是由很多像素點組成的(de)。之前提到那麽多種分辨率,都是手機屏幕的(de)實際像素尺寸。比如(rú)480×800的(de)屏幕,就是由800行、480列的(de) 像素點組成的(de)。每個點發出不同顔色的(de)光,構成我們所看到的(de)畫面。而手機屏幕的(de)物理(lǐ)尺寸,和(hé)像素尺寸是不成比例的(de)。最典型的(de)例子(zǐ),iPhone 3gs的(de)屏幕像素是320×480,iPhone 4s的(de)屏幕像素是640×960。剛好兩倍,然而兩款手機都是3.5英寸的(de)。

所以,我們要引入最重要的(de)一(yī)個概念:像素密度,也就是PPI(pixels per inch)。這項指标是連接數字世界與物理(lǐ)世界的(de)橋梁。

Pixels per inch,準确的(de)說是每英寸的(de)長(cháng)度上排列的(de)像素點數量。1英寸是一(yī)個固定長(cháng)度,等于2.54厘米,大約是食指最末端那根指節的(de)長(cháng)度。像素密度越高(gāo),代表屏幕顯示效果越精細。Retina屏比普通屏清晰很多,就是因為(wèi)它的(de)像素密度翻了一(yī)倍。

倍率與邏輯像素

再用iPhone 3gs和(hé)4s來舉例。假設有個郵件列表界面,我們不妨按照PC端網頁設計的(de)思維來想象。3gs上大概隻能顯示4-5行,4s就能顯示9-10行,而且每行 會變得特别寬。但兩款手機其實是一(yī)樣大的(de)。如(rú)果照這種方式顯示,3gs上剛剛好的(de)效果,在4s上就會小到根本看不清字。

在現實中,這兩者效果卻是一(yī)樣的(de)。這是因為(wèi)Retina屏幕把2×2個像素當1個像素使用。比如(rú)原本44像素高(gāo)的(de)頂部導航欄,在Retina屏上用了88個像素的(de)高(gāo)度來顯示。導緻界面元素都變成2倍大小,反而和(hé)3gs效果一(yī)樣了。畫質卻更清晰。

在以前,iOS應用的(de)資源圖片中,同一(yī)張圖通常有兩個尺寸。你會看到文件名有的(de)帶@2x字樣,有的(de)不帶。其中不帶@2x的(de)用在普通屏上,帶@2x的(de)用在Retina屏上。隻要圖片準備好,iOS會自(zì)己判斷用哪張,Android道(dào)理(lǐ)也一(yī)樣。

由此可(kě)以看出,蘋果以普通屏為(wèi)基準,給Retina屏定義了一(yī)個2倍的(de)倍率(iPhone 6plus除外,它達到了3倍)。實際像素除以倍率,就得到邏輯像素尺寸。隻要兩個屏幕邏輯像素相同,它們的(de)顯示效果就是相同的(de)。

Android的(de)解決方法類似,但更複雜一(yī)些。因為(wèi)Android屏幕尺寸實在太多,分辨率高(gāo)低(dī)跨度非常大,不像蘋果隻有那麽幾款固定設備、固定尺 寸。所以Android把各種設備的(de)像素密度劃成了好幾個範圍區間,給不同範圍的(de)設備定義了不同的(de)倍率,來保證顯示效果相近。像素密度概念雖然重要,但用 不着我們自(zì)己算,iOS與Android都幫我們算好了。

如(rú)圖所示,像素密度在120左右的(de)屏幕歸為(wèi)ldpi,160左右的(de)歸為(wèi)mdpi,以此類推。這樣,所有的(de)Android屏幕都找到了自(zì)己的(de)位置,并賦予了相應的(de)倍率:

  • ldpi [0.75倍]

  • mdpi [1倍]

  • hdpi [1.5倍]

  • xhdpi [2倍]

  • xxhdpi [3倍]

  • xxxhdpi [4倍]

各型号iPhone的(de)倍率比較簡單,我們後面會講到。那麽Android手機那麽多,具體怎麽分?哪些手機是幾倍的(de)倍率呢(ne)?我們先看一(yī)張表,這是友盟2014年(nián)10月到2015年(nián)03月的(de)數據:

就目前市場狀況而言,各種手機的(de)分辨率可(kě)以這樣粗略判斷。雖然不全面,但至少在1年(nián)內(nèi)都還有一(yī)定的(de)參考意義:

  • ldpi 如(rú)今已絕迹,不用考慮

  • mdpi [320x480](市場份額不足5%,新手機不會有這種倍率,屏幕通常都特别小)

  • hdpi [480x800、480x854、540x960](早年(nián)的(de)低(dī)端機,屏幕在3.5英寸檔位;如(rú)今的(de)低(dī)端機,屏幕在4.7-5.0英寸檔位)

  • xhdpi [720x1280](早年(nián)的(de)中端機,屏幕在4.7-5.0英寸檔位;如(rú)今的(de)中低(dī)端機,屏幕在5.0-5.5英寸檔位)

  • xxhdpi [1080x1920](早年(nián)的(de)高(gāo)端機,如(rú)今的(de)中高(gāo)端機,屏幕通常都在5.0英寸以上)

  • xxxhdpi [1440x2560](極少數2K屏手機,比如(rú)Google Nexus 6)

自(zì)然地(dì),以1倍的(de)mdpi作為(wèi)基準。像素密度更高(gāo)或者更低(dī)的(de)設備,隻需乘以相應的(de)倍率,就能得到與基準倍率近似的(de)顯示效果。

不過需要注意的(de)是,Android設備的(de)邏輯像素尺寸并不統一(yī)。比如(rú)兩種常見的(de)屏幕480×800和(hé)1080×1920,它們分别屬于hdpi和(hé) xxhdpi。除以各自(zì)倍率1.5倍和(hé)3倍,得到邏輯像素為(wèi)320×533和(hé)360×640。很顯然,後者更寬更高(gāo),能顯示更多內(nèi)容。所以,即使有倍率的(de) 存在,各種Android設備的(de)顯示效果仍然無法做(zuò)到完全一(yī)緻。

單位

不難發現,真正決定顯示效果的(de),是邏輯像素尺寸。為(wèi)此,iOS和(hé)Android平台都定義了各自(zì)的(de)邏輯像素單位。iOS的(de)尺寸單位為(wèi)pt,Android的(de)尺寸單位為(wèi)dp。說實話,兩者其實是一(yī)回事。

單位之間的(de)換算關系随倍率變化:

  • 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)

單位決定了我們的(de)思考方式。在設計和(hé)開發過程中,應該盡量使用邏輯像素尺寸來思考界面。設計Android應用時,有的(de)設計師喜歡把畫布設為(wèi) 1080×1920,有的(de)喜歡設成720×1280。給出的(de)界面元素尺寸就不統一(yī)了。Android的(de)最小點擊區域尺寸是48x48dp,這就意味着在 xhdpi的(de)設備上,按鈕尺寸至少是96x96px。而在xxhdpi設備上,則是144x144px。

無論畫布設成多大,我們設計的(de)是基準倍率的(de)界面樣式,而且開發人員需要的(de)單位都是邏輯像素。所以為(wèi)了保證準确高(gāo)效的(de)溝通,雙方都需要以邏輯像素尺寸 來描述和(hé)理(lǐ)解界面,無論是在标注圖還是在日常溝通中。不要再說“底部标簽欄的(de)高(gāo)度是96像素,我是按照xhdpi做(zuò)的(de)”這樣的(de)話了。

Web怎麽辦?

移動端頁面的(de)絕對單位仍然是px,至少代碼裏這麽寫,但它的(de)道(dào)理(lǐ)也和(hé)app一(yī)樣。由于像素密度是設備本身的(de)固有屬性,它會影響到設備中的(de)所有應用, 包括浏覽器。前端技術可(kě)以善加利用設備的(de)像素密度,隻需一(yī)行代碼,浏覽器便會使用app的(de)顯示方式來渲染頁面。根據像素密度,按相應倍率縮放。

可(kě)以通過這個測試頁面 http://greenzorro.github.io/demo/basic/響應式斷點.html 來看看你的(de)移動設備屏幕寬度,這是邏輯像素寬度。

以iPhone 5s為(wèi)例,屏幕的(de)分辨率是640×1136,倍率是2。浏覽器會認為(wèi)屏幕的(de)分辨率是320×568,仍然是基準倍率的(de)尺寸。所以在制作頁面時,隻需要按照 基準倍率來就行了。無論什麽樣的(de)屏幕,倍率是多少,都按邏輯像素尺寸來設計和(hé)開發頁面。隻不過在準備資源圖的(de)時候,需要準備2倍大小的(de)圖,通過代碼把它縮 成1倍大小顯示,才能保證清晰。

實際應用

大家最關心的(de)還是實際運用,畫布該怎麽設置。我們就iOS、Android、Web三個平台來分别梳理(lǐ)一(yī)下。不過在這之前,我要為(wèi)使用PS進行設計的(de)朋(péng)友介紹一(yī)個小技巧。

之前我說過,我們要以邏輯像素尺寸來思考界面。體現到設計過程中,就是要把單位設置成邏輯像素。打開PS的(de)首選項——單位與标尺界面,把尺寸和(hé)文字 單位都改成點(Point)。這裏的(de)點也就是pt,無論設計iOS、Android還是Web應用,單位都用它。當然,各平台單位名稱還是要記住的(de)。這裏 我們用的(de)隻是它的(de)原理(lǐ),不用在意名稱。

要調節倍率,則通過圖像大小裏的(de)DPI來控制。這個DPI,其實就是PPI,像素密度。有個常識大家都知道(dào),屏幕上的(de)設計DPI設成72,印刷品設計DPI設成300。為(wèi)什麽是這兩個數字?

首先說300,這和(hé)人眼的(de)分辨能力有關。由于1英寸是固定長(cháng)度,每1英寸有多少個像素點決定了畫質清晰程度。之前說過,這就是像素密度,也就是 DPI。DPI達到300以上,其細膩程度就會給人真實感,像真實世界中的(de)物件。相反,DPI隻有10的(de)話,在你一(yī)個食指指節大小的(de)長(cháng)度內(nèi)隻有10個像 素,這明顯就是馬賽克了。所以印刷品要設成300,才能保證清晰。

再說72,這有一(yī)定的(de)曆史原因。最早的(de)圖形設計是在mac電腦上進行的(de),mac本身的(de)顯示器分辨率就是72。PS中把圖像DPI也設成72,就能保證屏幕上顯示的(de)尺寸和(hé)打印尺寸相同,便于設計。72的(de)PC顯示器分辨率逐漸成為(wèi)一(yī)種默認的(de)行業标準,這套規則就這麽沿用下來。

現在回到正題,我們怎麽通過DPI來調節倍率?既然屏幕本身的(de)分辨率是72,DPI設成72剛好是1倍尺寸,那設成72的(de)兩倍就是倍率為(wèi)2的(de)屏幕了,就這麽簡單。

下面來看看3個平台各自(zì)的(de)畫布設置:

iPhone

iPhone的(de)屏幕尺寸各不相同,我說的(de)是邏輯像素尺寸,這确實是讓人很頭疼的(de)事情。如(rú)果想用一(yī)套設計涵蓋所有iPhone,就要選擇邏輯像素折中的(de)機型。

從市場占有率數據來看,目前最多的(de)是iPhone5/5s的(de)屏幕。倍率為(wèi)2,邏輯像素320×568。上升勢頭最猛,未來有望登上第一(yī)的(de)是iPhone 6的(de)屏幕。倍率為(wèi)2,邏輯像素375×667。

按照這兩種尺寸來設計,都是比較主流的(de)做(zuò)法。可(kě)以兼顧短(duǎn)一(yī)些的(de)iPhone 4s,大一(yī)點的(de)6 plus也不會過于空曠。

不過在切圖的(de)時候要注意,由于iPhone 6 plus的(de)3倍圖是由2倍圖放大而來,所以位圖要注意保證清晰。

Android

都說Android碎片化嚴重,但它現在反而比iOS好處理(lǐ)。因為(wèi)如(rú)今的(de)Android屏幕邏輯像素已經趨于統一(yī)了:360×640,就看你設成幾倍了。想以xhdpi為(wèi)準,就把DPI設成72×2=144。想以xxhdpi為(wèi)準,就把DPI設成72×3=216。

對于那些比較老的(de)低(dī)端機,寬度是480px的(de)那批,畫面确實會小一(yī)些,顯示內(nèi)容會更少。稍微留意一(yī)下,重要內(nèi)容盡量保持在界面中上部分。

當然,這些機型不出一(yī)年(nián)就會被邊緣化,基本淘汰。現在能運轉的(de)也是當作功能機在用,軟件多了必卡無疑,用戶體驗無從談起。不作考慮也是OK的(de)。

Web

手機端網頁就沒有統一(yī)标準了,比較流行的(de)做(zuò)法是按照iPhone 5的(de)尺寸來設計。倍率2,邏輯像素320×568。

這樣的(de)做(zuò)法比較實在,倍率2的(de)屏幕無論在iOS還是Android方面都是主流,而且又是2倍屏幕中邏輯像素最小的(de)。所以圖片的(de)尺寸可(kě)以保持在較小的(de)水平,頁面加載速度快。當然,缺點就是在倍率3的(de)設備上看,圖片不是特别清晰。

如(rú)果追求圖片質量,願意犧牲加載速度,那麽可(kě)以按照最大的(de)屏幕來設計。也就是iPhone 6 plus的(de)尺寸,倍率3,邏輯像素414×736。

總結

移動端的(de)尺寸比PC端複雜,關鍵就在倍率。但也正因為(wèi)倍率的(de)存在,把大大小小的(de)屏幕拉回到同一(yī)水平線,得以保證一(yī)套設計适應各種屏幕。站在這條水平線的(de)角度看,會發現它很好理(lǐ)解。