前言
Android项目中的res(Resources)文件夹是项目的资源配置路径,Android系统会根据请求的资源:res——>存放文件类型文件目录+资源限配符——>文件名,简单流程如下:
接下来会详细介绍res目录下的资源文件,以及资源文件对应的资源限定符。
一、资源文件介绍
Android系统res下会提供一些资源的目录,每种目录都对应存放不同的资源文件。
资源目录 | 对应资源目录存放类型 |
---|---|
animation/ | 用于定义属性动画的XML文件 |
anim/ | 定义渐变动画的XML文件 |
color/ | 用于定义颜色状态列表 |
drawable/ | 位图文件(.png、.jpg、 .gif)状态列表、形状等 |
mipmap/ | 不同启动图标密度的mipmap/用于App的icon、启动图片等 |
layout/ | 用于定义用户界面布局 |
menu/ | 用于定义应用菜单(选项菜单、上下文菜单或子菜单等) |
raw/ | 原始形式保存的任意文件 |
values/ | 包含字符串、整形数和颜色等 |
xml/ | 可以在运行时调用Resources.getXML()读取的任意XML文件 |
默认的Android项目res目录如下,可以根据需要再创建不同类型的资源文件。
二、资源限配符
Android由于大量的不同厂家的设备,为了更好的适配各种设备。Android系统提供了大量的资源限配符支持各种设备的适配。资源限配符如下:
优先级 | 配置 | 限定符号 |
---|---|---|
1 | MCC | 移动国家代码,示例:mcc310、mcc310-mnc004、mcc208-mnc00等等 |
2 | 语言和地区 | 语言代码定义,示例:en、fr、en-rUS、fr-rFR、fr-rCA等等 |
3 | 布局方向(api-17 | 应用的布局方向,ldrtl 是指“布局方向从右到左”。ldltr 是指“布局方向从左到右”,这是默认的隐式值。 |
4 | smallestWidth(api-13) | 屏幕的基本尺寸,由可用屏幕区域的最小尺寸指定。swdp示例:sw320dp、sw600dp、sw720dp等等 |
5 | 可用宽度 | 指定资源应该使用的最小可用屏幕宽度。wdp示例:w720dp、w1024dp等等 |
6 | 可用高度 | 指定资源应该使用的最小可用屏幕高度。hdp示例:h720dp、h1024dp等等 |
7 | 屏幕尺寸 | small(320x426 dp)、normal(320x470 dp)、large(480x640 dp)、xlarge(720x960 dp) |
8 | 屏幕纵横比 | long(宽屏)、notlong(非宽屏) |
9 | 屏幕方向 | port、land |
10 | UI 模式 | car(车载手机座)、desk、television、appliancewatch |
11 | 夜间模式 | Night、notnight |
12 | 屏幕像素密度 (dpi) | ldpi、mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi、nodpi、tvdpi |
13 | 触摸屏类型 | notouch:设备没有触摸屏、finger |
14 | 键盘可用性 | keysexposed:设备具有可用的键盘、keyshidden、keyssoft |
15 | 主要文本输入法 | nokeys:设备没有用于文本输入的硬按键、qwerty、12key |
16 | 导航键可用性 | Navexposed、navhidden |
17 | 主要非触摸导航方法 | Nonav、dpad、trackball、wheel |
18 | 平台版本(API 级别) | 示例:v3、v4、v7 等等 |
注意: 资源限定符是在不同的系统API基础之上,不断地增加。现在列举的通配符不是所有API版本都支持的,在开发过程中需要注意当前支持的API版本对应的 资源限配符。
三、设备适配详细流程
通过以上两点的描述,基本对Android设备的资源文件存放有了详细的了解。不同Android设备在运行时引用资源规则如下:
总结
Android项目中设定的 资源文件+ 限配符主要是更好的适配所有全球各地的各个厂商出产的Android硬件设备,同时还有Android系统API的更新等情况,以上就是简单的介绍res内资源配置情况。
持续更新中……