Apk应用程序资源适配

86 阅读2分钟

资源适配过程:未知设备>提取设备参数>资源池>最佳匹配规则>未知设备

资源类型

类型存放位置说明
动画资源res/anim/res/drawable/自定义动画实现,如旋转、平移、缩放等
状态颜色资源res/color/可以给某个view不同状态下不同的颜色
图形资源res/drawable/所有可以显示到屏幕上的图像
布局资源res/layout布局文件定义UI的框架,并且详细描述了view和layout
菜单资源res/menu定义菜单选项
字符串资源res/values在编写应用程序源码时,不允许对某个文本属性直接赋予一个字符串,这是对于字符串国际化和规范化的表现
样式资源res/values相当于将常用的UI外观保存成模板
原始资源res/raw存放原始格式的资源,如音频文件,也可以放在assets/目录下,通过AssetManager访问
其他资源res/values用于定义各种变量
属性资源res/Android给我们定义了很多常用属性,可以统一以“android” + “:” + 属性名,如Android:id、Android:visible等

提供可选资源

  • 分辨率
  • MCCMNC
  • 地区语言
  • 最小宽度/高度高度
  • 可用宽度/高度
  • 屏幕大小
  • 屏幕宽高外观
  • 屏幕方向
  • UI模式
  • 夜间模式
  • 屏幕像素密度
  • 触摸屏类型
  • 键盘可用性
  • 首选文本输入方法(按键设备)
  • 定位键可用(光标定位)
  • 主要的非触摸屏的定位方式
  • 平台版本

最佳资源匹配流程

  • 第一阶段:排除当前不符合设备的资源项
  • 第二阶段:按照资源优先顺序考察每个资源是否包含这个标签

屏幕适配

  1. 屏幕适配的重要参数
  • 屏幕分辨率
  • 屏幕密度(dip)
  • 屏幕尺寸(inch) 像素和Dpi关系:px = dp * (dpi/160) 一个ndp的物体在不同屏幕的实际物理尺寸 size = N (dpi/160)(1/dpi)= N/160
  1. 如何适配多屏幕
  • Andorid系统当前的屏幕配置资源最佳选择流程
  • 不同的屏幕尺寸使用不同的布局
  • 不同的屏幕密度听相映的图片资源
  • 显示声明了应用程序支持的屏幕类型(supports-screen)
  • 支持特定的屏幕
  • 布局时的注意事项
  1. 横竖屏切换的处理
  • 应用可以设置screenOrientaion来控制
  • 可以重写监听configurationchanged方法来处理