背景知识介绍
与其他平台的应用程序一样,Android中的应用程序也会使用各种资源,比如图片,字串等,会把它们放入源码的相应文件夹下面,如/res/drawable, /res/xml, /res/values/, /res/raw, /res/layout和/assets。Android也支持并鼓励开发者把UI相关的布局和元素,用XML资源来实现。
总结起来,Android中支持的资源有:
•颜色值 /res/values 以resources为Root的XML文件,定义形式为<color name>value</color>
•字串 /res/values 以resources为Root的XML文件<string name>value</string>
•图片 /res/drawable 直接放入,支持9 Patch可自由拉伸
•图片的颜色 /res/values 以resources为Root的XML文件,定义形式为<drawable name>value</drawable>
•单位资源 /res/values 以resources为Root的XML文件<dimen name>value</dimen>
•菜单 /res/menu 以menuo为root的XML文件
•布局 /res/layout 这个就是GUI的布局和元素
•风格和主题 /res/values 以resources为Root的XML文件<style name>value</style>
•动画 /res/anim 有二种:一个是帧动画(frame animation),也就是连续变换图片以animation-list为Root的XML文件;另外一种就是补间动画(tweened animation),它对应于API中的Animation和AnimationSet,有translate、scale、rotate、alpha四种,以set为root来定义,这个set就相当于AnimationSet
再说下目录:
•/res/anim 用于存放动画
•/res/drawable 存放图片,或等同于图片的资源如shape,或selector
•/res/menu 存放Menu
•/res/values 存放修饰性资源:字串,颜色,单位,风格和主题
•/res/layout 存放UI布局和元素
•/res/raw 存放运行时想使用的原始文件
•/assets 存放运行时想使用的原始文件
除了原始文件目录/res/raw和/assets以外,其他的资源在编译的时候都会被第三方软件aapt进行处理,一个是把图片和XML文件进行处理,例如把XML编译成为二进制形式;另外处理的目的就是生成R.java文件,这个文件是访问资源时必须要用到的。
/res目录下面的所有文件都会映射到R.java文件中,以整数Id的形式被标识,相同类型的资源被一个内部类来封装,一个R.java的文件类似于这样:
<Android开发笔记之: 数据存储方式详解>