在Android开发过程中,我们都知道为了屏幕适应不同屏幕的显示效果,通常我们需要设计师设计两套以上的切图。所以之前身为小白每当需求产生的时候,都牛气哄哄的说我们Android需要切多套图,但设计师后来找我要具体尺寸时,通常又会傻眼。虽然我也知道一些主流的尺寸,比如官方文档给出的 320 * 480 , 480 * 720,以及主流的屏幕尺寸 1080 * 1920 。但需要给出切图具体的一套具体的切图尺寸数据,总感觉拿出一套标准的。(当然也跟Android手机尺寸主流的变化有关),今天我们就来总结一下,如何结合当前市场及其他相关因素如何制定出一套适合自己App的一套尺寸比例。
我们来看一下Android 官方文档的描述:
Android categorizes device screens using two general properties: size and density. You should expect that your app will be installed on devices with screens that range in both size and density. As such, you should include some alternative resources that optimize your app’s appearance for different screen sizes and densities.
- There are four generalized sizes: small, normal, large, xlarge
- And four generalized densities: low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)
- mdpi: 1.0 (baseline) : 48 * 48
- hdpi: 1.5 :72 * 72
- xhdpi: 2.0 :96 * 96
- xxhdpi : : 144 * 144
- xxxhdpi : : 192 * 192
像素密度在120左右的屏幕归为ldpi,160左右的归为mdpi,以此类推。这样,所有的Android屏幕都找到了自己的位置,并赋予了相应的倍率:
ldpi [0.75倍] 120dpi
mdpi [1倍] 160dpi
hdpi [1.5倍] 240dpi
xhdpi [2倍] 320dpi
xxhdpi [3倍] 480dpi
xxxhdpi [4倍] 640dpi
ldpi 如今已绝迹,不用考虑
mdpi [320x480](市场份额不足5%,新手机不会有这种倍率,屏幕通常都特别小)
hdpi [480x800、480x854、540x960](早年的低端机,屏幕在3.5英寸档位;如今的低端机,屏幕在4.7-5.0英寸档位)
xhdpi [720x1280](早年的中端机,屏幕在4.7-5.0英寸档位;如今的中低端机,屏幕在5.0-5.5英寸档位)
xxhdpi [1080x1920](早年的高端机,如今的中高端机,屏幕通常都在5.0英寸以上)
xxxhdpi [1440x2560](极少数2K屏手机,比如Google Nexus 6)
自然地,以1倍的mdpi作为基准。像素密度更高或者更低的设备,只需乘以相应的倍率,就能得到与基准倍率近似的显示效果。
不过需要注意的是,Android设备的逻辑像素尺寸并不统一。比如两种常见的屏幕480x800和1080x1920,它们分别属于hdpi和xxhdpi。除以各自倍率1.5倍和3倍,得到逻辑像素为320x533和360x640。很显然,后者更宽更高,能显示更多内容。所以,即使有倍率的存在,各种Android设备的显示效果仍然无法做到完全一致。