傳統意義上,通常是是這麼認爲的: html
ldpi: 對應分辨率240×320 android
mdpi: 對應分辨率320×480 app
hdpi:對應分辨率480×800或480×854 ide
但實際上沒有這麼簡單,直接看官方資料的下標,能夠看到其實ldpi同樣由480×800,甚至還有1024×600 工具
低密度(ldpi 120) | 中密度(mdpi 160) | 高密度(hdpi 240) | 超高密度(320 xhdpi) | |
小屏幕 | QVGA (240×320) | 480×640 | ||
中屏幕 | WQVGA400 (240×400) WQVGA432 (240×432) |
HVGA (320×480) | WVGA800 (480×800) WVGA854 (480×854) 600×1024 |
640×960 |
大屏幕 | WVGA800** (480×800) WVGA854** (480×854) |
WVGA800* (480×800) WVGA854* (480×854) 600×1024 |
||
超大屏幕 | 1024×600 | WXGA (1280×800) 1024×768 1280×768 |
1536×1152 1920×1152 1920×1200 |
2048×1536 2560×1536 2560×1600 |
爲何要分辨率ldpi、mdpi、hdpi?個人理解,是爲了要在不一樣的屏幕密度下取得最好的顯示效果。 ui
從上一段來看,經過分辨率來看並非很靠譜,那怎麼樣才靠譜?其實,只要咱們知道屏幕分辨率、屏幕尺寸(對角線長度),就能夠算出相應的屏幕密度,從而根據其範圍得出屬於那種屏幕密度。 spa
咱們能夠根據長或者根據寬來計算出dpi,計算公式爲: excel
dpi=寬/((尺寸^2 * 寬^2)/(寬^2 + 高^2))^(1/2) htm
= 長/((尺寸^2 * 長^2)/(寬^2 + 高^2))^(1/2) blog
此計算公式能夠在excel中予以計算。
大概計算方法以下,以寬爲例:
1.好比分辨率爲320×480,則長寬比爲1:1.5
2.好比屏幕尺寸爲3.6」,則根據勾股定理,」長^2+寬^2=3.6^2″,即」寬^2+2.25*寬^2=12.96″,得出」寬^2=12.96/3.25″,則」寬=(12.96/3.25)^(1/2)= 1.9969″
3.寬爲320px,分佈在1.9969」上,所以密度爲320/1.9969=160.2467
4.所以此密度爲mdpi的密度
注:
1.此部分參考文章爲:http://blog.sina.com.cn/s/blog_7377a8a20100qydh.html
2.兩款計算dpi的應用
https://market.android.com/details?id=appinventor.ai_wenjiun1024.DPICalculato
https://market.android.com/details?id=com.andy.dpi
套用老資料,其實傳統意義上的經過分辨率判斷手機dpi,仍是比較靠譜的:
ldpi: 對應分辨率240×320
mdpi: 對應分辨率320×480
hdpi:對應分辨率480×800或480×854
爲何呢?由於ldpi若是要是320×480,則須要4.8寸的屏幕,若是是480×800,則須要7.8寸的屏幕,若是mdpi是480×800,則須要5.2寸的屏幕,通常的手機屏幕不會這麼大,因此還算靠譜。
固然,若是是分辨android pad的dpi,建議仍是算一下吧。
官方資料:http://developer.android.com/guide/developing/tools/draw9patch.html
簡單來講,若是你的圖片資源是能夠拉伸的而不會變形或者模糊的,則徹底可使用9-patch的格式,而不用爲不一樣的dpi提供不一樣的圖片資源。
此格式常常用在背景性質的圖片資源中。
android開發包提供了9-patch的製做工具,上方的劃線指明橫向能夠拉伸的區域,左方的劃線指明縱向能夠拉伸的區域,下方的劃線指明水平居中的區域,右方的劃線指明垂直居中的區域。
在盆地的理解中,通常提供hdpi大小的圖片,並製做爲9-patch格式,此時的拉伸在mdpi、ldpi上基本都不會帶來問題。
這部分網上有很多資料,這裏就再也不贅述了,上述的描述是爲了盆地往後便於想起和理解。
除了指明拉伸區域拉伸不變形的圖片外,相似圖標或者其餘會變形的圖片資源,最佳狀況下須要分別針對不一樣的dpi提供不一樣的圖片。
此處特別須要注意的是,假設不考慮xhdpi的支持,hdpi、mdpi、ldpi的支持,須要考慮相應的比例,即1.5:1:0.75,須要在相應比例關係下保持整數的像素值,不然可能會產生模糊的狀況。
舉個具體例子,某個圖標在hdpi下大小爲48×48,則mdpi和ldpi下分別爲32×32和24×24,若是此圖標在hdpi設定爲50×50,則mdpi下50沒法整除1.5,所以mdpi下圖標不論圖標設定爲33×33仍是34×34都會模糊(可能獨立指定能夠避免此狀況,此部分不太瞭解)。
這一部分在官方資料中描述的很全面,只是很多應用開發者沒有按照規範來,好比桌面圖標的在hdpi上分辨率雖然定義的是72×72,但實際上應該只佔60×60(若是是正方形,則應該是56×56),而很多應用直接把圖標設定爲72×72,因此會發現android中不少圖標比系統的圖標大一些,就是這個緣故。
這一部分就直接參照官方文檔吧,作法上也就是作三份,只是須要遵守文檔來。
http://developer.android.com/guide/practices/ui_guidelines/icon_design.html
做爲產品人員,瞭解這個的目的,是爲了向UI人員協調相應的UI資源,以及和開發保持順暢的溝通,若是不瞭解這個,可能事倍功半,因此,做爲產品人員,仍是瞭解下吧。
上述描述中錯誤的地方,請不吝賜教。