事情的起因是這樣的,公司的項(xiàng)目里要做一個(gè)輔助孩子測(cè)試視力的功能,然后,還是好好想想怎么實(shí)現(xiàn)功能吧。
其實(shí)吧,功能也很簡(jiǎn)單,就一個(gè)要點(diǎn),讓 “E” 以實(shí)際的大小顯示在屏幕上。好吧,什么是實(shí)際的大小呢?大家都知道,現(xiàn)在測(cè)試視力時(shí)標(biāo)準(zhǔn)的又兩種距離:3m 和 5m,我們項(xiàng)目只考慮 3m 這一種距離。那么 3m 時(shí) "E" 的標(biāo)準(zhǔn)距離是多少呢,請(qǐng)看下圖

最初想的很簡(jiǎn)單,設(shè)計(jì)MM把圖按照實(shí)際大小切給我就好了嘛,不是就是顯示個(gè)圖片么,分分鐘的事情,搞定。如果真的這么簡(jiǎn)單,誰(shuí)還在這瞎扯淡...
請(qǐng)仔細(xì)看上面的圖,實(shí)際大小是以 cm 或 mm 標(biāo)注的,也就是說(shuō),我需要在屏幕上顯示的圖片是以 cm 或 mm 為單位的,而不在是開(kāi)發(fā)正常使用的 point,那么問(wèn)題來(lái)了:
應(yīng)該怎么將 毫米(mm) 轉(zhuǎn)換成 點(diǎn)(point) 呢?
很自然的,去找他們之間的轉(zhuǎn)換關(guān)系嘛,小學(xué)生都知道的事情。然而事實(shí)并不是這樣的,pixel(point) 與 mm 是不能直接轉(zhuǎn)換的,它們之間缺一了一個(gè) 轉(zhuǎn)換的標(biāo)準(zhǔn),那么這個(gè)標(biāo)準(zhǔn)是什么呢?讓我來(lái)告訴你,這個(gè)標(biāo)準(zhǔn)就是 DPI 。
那么什么是 DPI 呢?
感謝上蒼讓我找到可這篇文章。
簡(jiǎn)單的理解下來(lái) * DPI * 就是每英寸的像素?cái)?shù),即一英寸的長(zhǎng)度排列了多少個(gè)像素點(diǎn),計(jì)算公式也很簡(jiǎn)單
DPI = √(長(zhǎng)度像素?cái)?shù)2 + 寬度像素?cái)?shù)2) / 屏幕對(duì)角線英寸數(shù)
另外還有一個(gè)長(zhǎng)度換算公式:
1inch = 25.4 mm
最后從厘米到像素的換算公司:
pixel = mm / inch * DPI
APP 只有 iPad 上運(yùn)行,幸好,只有兩個(gè)尺寸 9.7inch 和 7.9inch 的 mini,至于怎么判斷當(dāng)前使用的設(shè)備類型,你可以在這里獲得判斷的代碼。點(diǎn)擊 demo下載。
下圖是 mini4 的演示效果:
