Android多分辨率适配经验总结

Android多分辨率适配是一件很有意义但是比较麻烦的事情,网上有很多关于多分辨率适配的文章,多数文章讲解的都是整个APP的图片比较规则,可以将图片做成9图来完成多分辨率适配,但是对于一些游戏类应用(这里说的游戏没有使用游戏引擎)、低龄儿童应用,APP中有很多花哨的图片,这种APP的图片显然无法做成9图,在网上查了很多资料始终没有比较理想的解决方案,结合自己最近做的项目介绍一下针对这种情况下的多分辨率适配:

为了减少UI的工作量,一个APP只提供一套图;

为了减少程序员的重复工作,一个APP只维护一套程序;

为了在各种分辨率下图片不失真,UI按照最高分辨率提供图片;

为了达到理想的效果,图片切分尽量细,将带有修饰效果的图片全部和背景分离(比如APP的大背景中有树、花草、人物,,将这些小场景从背景图中切出来,程序员自己将图贴上去,只是不同分辨率下的尺寸、位置不一样。);

为了图片不变形,图片宽高必须等比缩放;

原则上程序只有一套布局,对于有特殊要求的地方,可以创建多套layout文件夹,为主流分辨率提供相应的布局文件;

程序员创建多套values文件夹,文件夹下的dimens.xml文件存放相应分辨率的图片尺寸和坐标。

将公用的布局抽出,在需要使用的地方以include标签的形式引入。

注:

上面的方案基本上解决了多分辨率适配的问题(项目中大概只需要适配4-5款分辨率的机型),对于分辨率相差较大或者屏幕尺寸相差太大的情况,可以考虑做两套UI和两套程序,这样才能达到比较理想的效果,比如很多APP都提供了手机版和PAD版两个APP。

多分辨率适配通常的做法是在同一套程序下按照分辨率创建多个layout文件夹,但在开发中我发现也可以按照分辨率创建多个values文件夹,比如:values-1230×800、values-1920×1200、values-1969×1536、values-974×768,对于按照分辨率创建不同文件夹特别需要说明的是:

格式:文件夹名称-大数值x小数值(大数值在前,小数值在后);

文件夹名称中的数值不是机器的真实分辨率,需要减掉通知栏的高度;

同一分辨率在横竖屏情况下是是两个不同的文件夹,比如分辨率为1024×768,通知栏高度为50,那么横屏对应的文件夹为:values-1024×718,竖屏对应的文件夹为values-974×768。

便是不再存在着任何我曾经对你有过的希望。

Android多分辨率适配经验总结

相关文章:

你感兴趣的文章:

标签云: