严格来说,作为读者,你应该带着批判性质的眼光来看这篇文章,此文章依据本人对Android官方开发资料《Supporting Multiple Screens》的阅读、实践以及和开发人员的沟通形成,内容更多为目前盆地个人理解的总结。
一、Android支持的多种屏幕
传统意义上,一般是是这么认为的:
ldpi: 对应分辨率240×320
mdpi: 对应分辨率320×480
hdpi:对应分辨率480×800或480×854
但实际上没有这么简单,直接看官方资料的下标,可以看到其实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?
为什么要分辨率ldpi、mdpi、hdpi?我的理解,是为了要在不同的屏幕密度下取得最好的显示效果。
从上一段来看,通过分辨率来看并不是很靠谱,那怎么样才靠谱?其实,只要我们知道屏幕分辨率、屏幕尺寸(对角线长度),就可以算出相应的屏幕密度,从而根据其范围得出属于那种屏幕密度。
我们可以根据长或者根据宽来计算出dpi,计算公式为: