顺便推荐一本Android入门的好书,不过目前只有英文版的,书名是Pro Android 2.
几乎所有的UI 框架(UI framworks)都会使用到资源,但Android有些不同,他用到了R.class类来把资源IDs和资源联系在一起,这是一种快速访问资源的能力。在开发中我们会用到的关键资源类型有
Resource Type
Location
Description
------------------------------------------------------------------------------------------
Strings
Colors
Dimetions
/res/values/any-file.xml
/res/values/any-file.xml
/res/values/any-file.xml
标签属性名名称(name="你给的名称")就是代表该资源的ids
表示颜色的标识符(color identifiers)指向颜色代码(color codes),在any-file.xml文件中,表示颜色的XML节点是/resources/color,即颜色由资源标签(tag)<color>定义,定义后的颜色ids出现在R.class中作为R.color.*。
表示字符串资源。除了简单的字符串外,字符串资源还允许使用java语言中的格式化字符串以及原始html.这些字符串资源的ids出现在R.class中作为R.string.*,他们在文件中的XML节点是/resources/string。
表示在Android中的各种元素或视图的大小(size)或尺寸(dimention),在any-file.xml文件中的节点是/resources/dimen,相应地其ids在R.class中生成R.dimen.*。
注意,为了方便,我们往往把程序用到的所有字符串资源定义在一个strings.xml文件中,其实,我们可以在任意多个any-file.xml文件中定义string、color、dimen资源,其中只要确保资源ids的唯一性,以及使用对应的资源标签(如<color>定义颜色),否则,编译时出错,也不能生成相应的R.class文件(R.class文件是不可以人为编辑的,即使可以,只要在/res下的子目录中的文件发生改变,系统会依据/res中的各种资源文件自动生成/更新R.class文件)。
代码例子:
/res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello1">Hello</string>
</resources>
/res/values/strings1.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello2">Hello</string>
</resources>
在两个资源文件中我们为字符串Hello定义了两个不同的ids,相应的在R.class中生成R.string.hello1和R.string.hello2。
也可以这样
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello2">Hello</string>
<color name="white">#ffffffff</color>
<drawable name="white">#ffffffff</color>
</resources>
系统会自动读取/res/value目录下的所有文件,根据资源标签来生成做为R.class中的R.*.ids.
Resource Type
Location
Description
------------------------------------------------------------------------------------------
Images
/res/drawable/multiplefiles
Color Drawable
/res/values/any-file或是/res/drawable/multiplefiles
任意的XML文件(XML Files)
/res/xml/*.xml
任意的原始文件(Raw Resources)
/res/raw/*.*
任意的原始资源(Raw Assets)
assets/*.*/*.*
在Android中,只有/assets允许建立其他的子目录,而且任意深度的目录结构下的文件都可以被Android访问。
在Android中,资源编译器会把除了/res/raw和/assets目录以外的所有资源文件编译成二进制文件。
对于image资源,Android支持的图片格式有jpg、png、gif等,而且/res/drawable/下的每个image会以文件名做为R.class里R.drawable.*中的ids。
/res/values子目录中的<drawable>资源标签,表示颜色的矩形将用于视图的背景或是用做单一色的bitmap,就好像在java中创建一个有色的矩形并把它设置成视图的背景,对应的,其定义节点是/resources/drawable,在R.class中生成R.drawable.*。Android也支持定义圆角矩形和梯形矩形,通过在/res/drawable子目录下定义一个xml文件,该xml的根标签(root xml tag)是<shape>。该xml的文件名被转换成唯一的ids放于R.drawable.*中指代。
Android也允许任意的XML文件做为资源,这些文件会被aapt编译器编译成为二进制文件,其定义在/res/xml中,xml文件名做为ids放于R.xml.*。
分享到:
相关推荐
Android学习笔记 Android学习笔记 Android学习笔记
Android学习笔记
android 学习笔记(全全整理),吧android学习笔记全部整理下来了,可以去好好学习学习
Android学习笔记(一)——创建第一个Android项目 Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) ...
第一行代码 android学习笔记 修改完整版
android 学习笔记 android 学习笔记 android 学习笔记
Android 开发学习笔记,学习android的好资料
自己整理的Android学习笔记 都是一些小细节,有用
学习java和android的笔记 更容易学习android 资深学习android 具有大量学习的笔记 很多的错误 都是从细节开始学习的
Android学习笔记,介绍怎么学习android。
Android学习笔记(十三) 碎片 完整源码
android学习笔记
Android学习笔记(1)-永远不变的Hello World Google的Android SDK发布也有一段时间了,一直想研究一下却苦于找不到时间。利用这个周未,开始强迫自己再次进入学习状态,原因很简单:我看好开放的gPhone。 SDK的下载...
Android开发学习笔记(整理),整理论坛android学习笔记,较完整的讲解了android的内容。包括:view、activity、service、intent、广播机制、http连接、数据sqllite存储、后台线程、各种layout、偏好、本地文件操作、...
Android学习笔记——获取网络图片并显示
android入门学习笔记
Android基础学习笔记,自己总结,适合初学者。
Android_学习笔记 Android_学习笔记 Android_学习笔记