Android开发系列6——项目中res详解

前言

  Android项目中的res(Resources)文件夹是项目的资源配置路径,Android系统会根据请求的资源:res——>存放文件类型文件目录+资源限配符——>文件名,简单流程如下:

Created with Raphaël 2.2.0 资源文件引用 res资源目录查找 anim、drawable、values等文件 根据设备匹配,优先级:<resources_name>-<config_qualifier>, 查找到对应的资源 资源引用 yes no

接下来会详细介绍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目录如下,可以根据需要再创建不同类型的资源文件。
res目录

二、资源限配符

Android由于大量的不同厂家的设备,为了更好的适配各种设备。Android系统提供了大量的资源限配符支持各种设备的适配。资源限配符如下:

优先级配置限定符号
1MCC移动国家代码,示例:mcc310、mcc310-mnc004、mcc208-mnc00等等
2语言和地区语言代码定义,示例:en、fr、en-rUS、fr-rFR、fr-rCA等等
3布局方向(api-17应用的布局方向,ldrtl 是指“布局方向从右到左”。ldltr 是指“布局方向从左到右”,这是默认的隐式值。
4smallestWidth(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
10UI 模式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设备在运行时引用资源规则如下:

Created with Raphaël 2.2.0 Android Devices 查找与引用资源文件 对应的所有匹配的文件目录(文件目录+限定符) 文件目录+限定符(优先级从高到低)列表ListA。 优先级高的先读取,第一次读取ListA第一个最高优先级TempA, 其他,根据上一次读取优先级下一级ListA列表的下一优先级文件夹TempA。 如果读取到ListA最后问价夹还是没有资源文件,则读取失败 读取TempA内资源文件是否存在 获取资源文件成功 结束 yes no

总结

Android项目中设定的 资源文件+ 限配符主要是更好的适配所有全球各地的各个厂商出产的Android硬件设备,同时还有Android系统API的更新等情况,以上就是简单的介绍res内资源配置情况。

持续更新中……

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值