“這個圖標有多大?”------系統(tǒng)屏幕密度與真實屏幕密度

有一天我和老婆一起在玩我們項目做的App桦踊,她突然指著一個圖標問我:

“這個圖標有多大?”

“多大终畅?什么意思籍胯?” 我有點不太明白。

“就是這個圖標在我的手機上長寬是多少毫米离福≌壤牵”

嗯,這確實是個好問題妖爷。

初步思考

其實最簡單的方法就是拿尺子去量蝶涩,但是我們身為聰明絕頂的開發(fā)工程師,絕不能使用這種粗鄙的方法絮识。

我打開Android Studio绿聘,查看了這個圖標的實際尺寸:160x160,圖片資源文件放在xhdpi的文件夾下次舌,且布局使用的ImageView長寬設置都是wrap_content熄攘。這就代表著如果是在屏幕密度是xhdpi即320dpi,這張圖片所占用的像素值應該寬高都是160彼念,而老婆的手機是1920*1080分辨率挪圾,屏幕密度是xxhdpi即480dpi,則圖片的像素值是240逐沙。

知道像素如何推出實際大小呢哲思?首先屏幕密度dpi指的是像素/英寸,xxhdpi意味著每英寸里有480像素吩案,這樣可以推出這張圖片長寬為0.5英寸≈12.7毫米棚赔。

我興高采烈的說了一通我的方法,并告訴她答案,結果她一臉鄙夷的說:

“哈忆嗜?可是我昨天量了不是這個數啊己儒,好像有13mm多呢±粒”

我趕緊拿尺子量了一遍闪湾,發(fā)現真的超過了13mm。天啊绩卤,我居然弄錯了途样?

哪錯了

仔細回想剛才的推理過程,我通過圖片大小濒憋、存放的位置以及布局方式計算出了圖片占用的像素值何暇,然后再用像素值與屏幕密度計算出了最終大小。

可能是像素值算錯了凛驮,但是我用老婆手機調試打印了一下裆站,發(fā)現確實是寬高確實是240。那像素沒問題難道是屏幕密度錯了黔夭?

確實是屏幕密度錯了宏胯,其實仔細詳細這個問題,發(fā)現里面確實有蹊蹺本姥。

以19201080這個分辨率為例肩袍,我們知道分辨率為19201080的手機品牌有很多,而且他們的屏幕密度都聲稱是xxhdpi婚惫,如果真實情況確實如此氛赐,那么所有分辨率相同的手機屏幕長寬應該都是一樣的,即長=1920/480=4英寸先舷,寬=1080/480=2.25英寸艰管。但實際上我們知道并非如此,很多手機廠商的屏幕大小是各不相同的密浑,如5寸屏蛙婴、4.5寸屏等(這里是指對角線)。

問題就出在這里尔破,這個可以算是系統(tǒng)屏幕密度與實際屏幕密度不一致導致的一個問題街图,Android系統(tǒng)會把這類手機都當成屏幕密度是xxhdpi,所以在資源文件大小縮放懒构,或是dp與px單位轉換等問題上餐济,用的都是xxhdpi標準。其實這個差異并不會影響到我們實際的開發(fā)胆剧,因為界面布局來說不會去關心真實的物理長度絕對值絮姆。仔細想想Android這樣的目的也是為了減少碎片化醉冤。

進一步的思考

我記得當時在學習dp這個單位的時候就有一個疑問,因為dp代表的像素值是跟隨屏幕密度改變的篙悯,1dp = 屏幕密度/160像素蚁阳,而屏幕密度的概念也是每英寸的像素數,那就是意味著1dp的實際物理長度為1/160英寸鸽照。
當時覺得自己發(fā)現了很厲害的東西螺捐,但是現在想想這個東西還是不成立的。

后續(xù)

后來有一天產品寶寶拿著手機跑來問我:
“緊張矮燎,能不能告訴我這個圖片顯示的長寬定血,毫米數,我們要輸出給工信部诞外±焦担”
“你自己拿尺子量一下吧∠恳辏” 我沒有停止手頭的工作茫虽,頭也不抬的回答到。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末靖苇,一起剝皮案震驚了整個濱河市席噩,隨后出現的幾起案子,更是在濱河造成了極大的恐慌贤壁,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件埠忘,死亡現場離奇詭異脾拆,居然都是意外死亡,警方通過查閱死者的電腦和手機莹妒,發(fā)現死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門名船,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人旨怠,你說我怎么就攤上這事渠驼。” “怎么了鉴腻?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵迷扇,是天一觀的道長。 經常有香客問我爽哎,道長蜓席,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任课锌,我火速辦了婚禮厨内,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己雏胃,他們只是感情好请毛,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瞭亮,像睡著了一般方仿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上街州,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天兼丰,我揣著相機與錄音,去河邊找鬼唆缴。 笑死鳍征,一個胖子當著我的面吹牛,可吹牛的內容都是我干的面徽。 我是一名探鬼主播艳丛,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼趟紊!你這毒婦竟也來了氮双?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤霎匈,失蹤者是張志新(化名)和其女友劉穎戴差,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體铛嘱,經...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡暖释,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了墨吓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片球匕。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖帖烘,靈堂內的尸體忽然破棺而出亮曹,到底是詐尸還是另有隱情,我是刑警寧澤秘症,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布照卦,位于F島的核電站,受9級特大地震影響历极,放射性物質發(fā)生泄漏窄瘟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一趟卸、第九天 我趴在偏房一處隱蔽的房頂上張望蹄葱。 院中可真熱鬧氏义,春花似錦、人聲如沸图云。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽竣况。三九已至克婶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間丹泉,已是汗流浹背情萤。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留摹恨,地道東北人筋岛。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像晒哄,于是被迫代替她去往敵國和親睁宰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內容