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-1230x800、values-1920x1200、values-1969x1536、values-974x768,对于按照分辨率创建不同文件夹特别需要说明的是:

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

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

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

更多相关文章

  1. Android(安卓)Studio中新建assets文件的两种方法
  2. 创建一个QT for Android的传感器应用应用程序(摘自笔者2015年将出
  3. Android平台上大长图(图片很大的那种)的加载原理和方式
  4. Android图片特效处理(像素处理)
  5. android高仿微信视频编辑页
  6. android中如何读取已经在sqlite expert professional等sqlite工
  7. 几张SVG矢量图看明所有操作系统之间的演进关系
  8. Android同一图片在不同分辨率下长宽不同
  9. Android调用照相机拍照

随机推荐

  1. Maven系列 8.Maven发布
  2. Android开发之ViewPager切换动画
  3. 热更新-Android与Lua相互通信
  4. Android运行时异常“Binary XML file lin
  5. Android(安卓)中的危险权限
  6. Android(安卓)使用draw9patch技术实现不
  7. android中Retrofit2.0的封装:设计到请求前
  8. 如何在首次启动时跳过Google安装向导
  9. android 条码识别软件开发全解析:1
  10. 使用 buck 打包 Android( 使用OkBuck给And