移動(dòng)開發(fā)中尺寸相關(guān)的概念梳理

背景

做移動(dòng)App開發(fā)的同學(xué),應(yīng)該都被分辨率相關(guān)的概念或適配問題困擾過。甚至于設(shè)計(jì)人員哼凯,面對技術(shù)提到的dp欲间,dip,sp等詞匯時(shí)断部,也許也要懵上一會(huì)猎贴。在此,對開發(fā)中常用的一些概念做一個(gè)梳理家坎。

基礎(chǔ)概念

  1. 英寸(inch)

是英制的長度單位,1inch=2.54cm
我們通常用英寸來描述手機(jī)屏幕的尺寸吝梅。如iPhone6屏幕尺寸為4.7英寸虱疏,iPhone 6 Plus屏幕尺寸為5.5英寸,指的是顯示屏對角線的長度苏携。如下圖:


iPhone部分屏幕尺寸示意
  1. 像素(Pixel)

百科上給的定義做瞪,指基本原色素及其灰度∮叶常可以理解為屏幕上的一個(gè)最小物理顯示單位装蓬。無論代碼里使用哪一種單位,最終都要轉(zhuǎn)化為像素單位纱扭,并顯示出來牍帚。

  1. 屏幕像素密度 ppi(Pixels Per Inch)

由它的名稱可以看出,ppi指每英寸長度上含有的像素?cái)?shù)目乳蛾。只是這里的測量方式是沿著對角線的暗赶。

那ppi怎么算出來呢?其實(shí)就是很簡單的一個(gè)勾股定理公式:


ppi 計(jì)算公式

舉個(gè)例子肃叶,iPhone 5的分辨率是640px*1136px, 屏幕為4inch蹂随,代入上述公式可得到ppi=326。

  1. dpi(Dot Per Inch)

dpi指每英寸有多少個(gè)點(diǎn)因惭。對手機(jī)岳锁、平板屏幕來說,dpi=ppi

iOS中的尺寸單位

pt 即point蹦魔,是iOS里繪圖時(shí)坐標(biāo)系使用的抽象單位激率。我們應(yīng)該把它和排版印刷中的point單位區(qū)別開來。

  • iPhone 3GS手機(jī)的邏輯分辨率是320pt *480 pt勿决,屏幕的實(shí)際物理分辨率是320px * 480px柱搜,所以1pt剛好對應(yīng)1px;

  • 到了iPhone 4剥险,蘋果采用了Retina的顯示技術(shù)聪蘸,邏輯分辨率仍然是320pt * 480 pt,物理分辨率變成了640px * 960px (326ppi), 意味著1pt會(huì)被渲染為2*2的像素矩陣。如下示意圖:


    顯示對比
  • iOS中的scale(縮放因子)健爬,闡述了pt與px之間的一個(gè)映射關(guān)系:

1 point = scale * pixel

(3GS的scale=1控乾, iPhone4、5娜遵、6的scale=2, iPhone 6 Plus的scale = 3)

對于iPhone 6 Plus機(jī)型蜕衡,邏輯分辨率選用了414pt * 736pt,按照scale=3來計(jì)算设拟,完美1:1映射的設(shè)備物理分辨率應(yīng)該是1242px * 2208px慨仿。但實(shí)際上手機(jī)的物理分辨率沒有那么大(1080px * 1920px),個(gè)中緣由我們就不探討了纳胧,對開發(fā)者來說镰吆,就按照@3x來準(zhǔn)備素材,剩下的工作由渲染時(shí)自動(dòng)壓縮完成跑慕。具體可參考如下鏈接中的一張示意圖 https://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions

Android中的尺寸單位

大家都知道Android生態(tài)圈內(nèi)的設(shè)備碎片化比較嚴(yán)重万皿,出現(xiàn)了各種分辨率的屏幕。如果按屏幕密度(即ppi)來劃分核行,廣義上可以分為四種大欣喂琛:低(120ppi)、中(160ppi)芝雪、高(240ppi)和超高(320ppi)减余。

  • dp,也叫dip惩系,Density-independent Pixels的簡寫佳励,字面意思就是密度無關(guān)的像素單位。dp是基于屏幕密度的一個(gè)抽象單位蛆挫,這點(diǎn)上跟iOS里的pt本質(zhì)上其實(shí)是一樣的赃承。Android引入這個(gè)概念,也就是為了解決在不同ppi的設(shè)備上悴侵,能夠得到相同的顯示效果瞧剖。

之前我們講到,任何單位顯示時(shí)都要轉(zhuǎn)化為像素Pixel可免。那么dp和px的換算關(guān)系是怎樣的呢抓于?

px=dp*ppi/160

即在160ppi的屏幕上,1dp=1px浇借;而320ppi的屏幕上捉撮,1dp=2px,可以理解為1dp的單位將以2個(gè)像素來渲染妇垢。

屏幕密度(ppi) dp px
mdpi(160ppi) 1 1
hdpi(240ppi) 1 1.5
xhdpi(320ppi) 1 2
xxhdpi(480ppi) 1 3
  • sp巾遭,Scale-independent Pixels肉康,是google建議的對字號使用的單位,比如在TextView里灼舍。為什么有了dp吼和,還要引入sp呢?因?yàn)锳ndroid允許用戶在“設(shè)置"里自定義文字尺寸大小(比如小骑素,標(biāo)準(zhǔn)炫乓,大,超大献丑,特大)末捣。如果App功能上需要和系統(tǒng)這里的字號設(shè)置有聯(lián)動(dòng)關(guān)系,那使用sp就有意義了创橄。實(shí)際開發(fā)中箩做,如果沒有這個(gè)必要,字號的地方使用dp也是沒問題的筐摘。

以上簡單總結(jié)了iOS和Android實(shí)際開發(fā)中的尺寸單位的概念卒茬。有不正之處船老,歡迎指正咖熟。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市柳畔,隨后出現(xiàn)的幾起案子馍管,更是在濱河造成了極大的恐慌,老刑警劉巖薪韩,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件确沸,死亡現(xiàn)場離奇詭異,居然都是意外死亡俘陷,警方通過查閱死者的電腦和手機(jī)罗捎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拉盾,“玉大人桨菜,你說我怎么就攤上這事∽狡” “怎么了倒得?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長夭禽。 經(jīng)常有香客問我霞掺,道長,這世上最難降的妖魔是什么讹躯? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任菩彬,我火速辦了婚禮缠劝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘挤巡。我一直安慰自己剩彬,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布矿卑。 她就那樣靜靜地躺著喉恋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪母廷。 梳的紋絲不亂的頭發(fā)上轻黑,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機(jī)與錄音琴昆,去河邊找鬼氓鄙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛业舍,可吹牛的內(nèi)容都是我干的抖拦。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼舷暮,長吁一口氣:“原來是場噩夢啊……” “哼态罪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起下面,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤复颈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后沥割,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耗啦,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年机杜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了帜讲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡椒拗,死狀恐怖似将,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情陡叠,我是刑警寧澤玩郊,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站枉阵,受9級特大地震影響译红,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜兴溜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一侦厚、第九天 我趴在偏房一處隱蔽的房頂上張望耻陕。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽召庞。三九已至,卻和暖如春来破,著一層夾襖步出監(jiān)牢的瞬間篮灼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工徘禁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留诅诱,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓送朱,卻偏偏與公主長得像娘荡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子驶沼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評論 2 348

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