在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
目前主流的屏幕密度:
240dpi (480 * 800px) , 320dpi (720*1280px) , 480dpi(1080*1920px)
Android手机适配原理 Android手机中寻找一个图片资源的加载
设计师设计尺寸
1,一般采用720 * 1280的屏幕尺寸设计,这样切图可以直接适配720 * 1280的机型。当然也可以选择其他尺寸。 2,720 * 1280下切的图基本可以适配大部分机型,有些特殊的切图需要单独适配,比如icon等。 3,适配480 * 800的机型,只需要把切图 * 0.75。 4,适配1080 * 1920 的机型,只需要把切图 * 1.50即可。 5,适配1080 * 1920尺寸时,不要直接将切图放大1.5倍。要求在720 * 1280下画图的时候,尽量采用矢量图形来画图。比如:在720 * 1080下icon图标的尺寸为 48 * 48 px的时候,适配1080 * 1920的时候,48 * 1.5 =72px,把矢量图调整为72px即可。然后开发将切图单独方法xxhdpi文件目录下,就会自动适配 1080 * 1920了。同样,480 * 800屏幕尺寸,48 * 0.75 = 32px,开发将矢量图放在hdpi下,就会自动适配。 另外,720 * 1280 尺寸的切图是放在xhdpi文件目录下。
Android APP最佳实践建议
1,画布大小定位720 * 1280 2,只使用偶数单位的尺寸 3,尽量只使用 24pt, 28pt , 32pt, 44pt大小的字体 4,设计完成之后,所有尺寸的px值除以2作为dp数据交给开发人员 5,所有的pt值除以2最为sp数据交给开发人员 6,三份切图,分别是:原始大小,缩小1.5倍,缩小两倍,分别作为xhdpi,hdpi,mdpi的资源
为什么选择 720 * 1280 作为设计稿,而且分辨率色湖之为72?
因为320 dpi屏幕的分表率最常见的就是720 * 1280,这样在多大多数机型上是完美适配的。而且挑密度最大的,因为缩小图片比放大图片效果好,放大图片会失真。选320dpi作为目标屏幕,其他尺寸屏幕提供图片时,只需要缩小即可。
Android 4.0 以后的设计规范中建议只使用四种字号,分别是 12 sp,14 sp,18 sp 和 22 sp,这也是 Android framework 用到的全部字号。
根据友盟统计数据我们来看一下目前市场上Android各屏幕尺寸的情况
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设备的显示效果仍然无法做到完全一致。