本章主要介绍了Android应用资源的相关内容,Android应用资源是一种非常优秀、高解耦的设计,通过使用资源文件,Android应用可以把各种字符串、图片、颜色、界面布局等交给XML文件配置管理,避免在Java代码中以硬编码方式直接定义这些内容。学习这众多的资源,只需抓住在Java代码中获取的方法和在XML文件中的配置元素,使用方法都是相似的。书最后还介绍了Android应用的国际化。
上图!
【知识点】
·在Android应用中使用资源:
①在Java代码中使用资源清单项,Android SDK会在编译应用时在R类中为/res目录下所有资源创建索引项,因此在Java代码中访问资源主要通过R类来完成。
②在Java代码中访问实际资源,大部分情况下,应用的API允许直接使用int类型的资源清单项代替应用资源;需要使用实际的Android资源是,可以借助Resources类,Resources类称为“Android资源访问总管家”,提供了大量方法来根据资源清单ID获取实际资源。
③在XML中使用资源,@[<package_name>:]<resource_type>/<resource_name>
·使用原始XML资源:
Android应用中一些初始化的配置信息、应用相关的数据资源需要保存,一般推荐使用XML文件来保存,这种资源就称为原始XML资源。原始XML资源一般保存在/res/xml路径下,当创建应用时开发者需手动创建xml目录。 大部分时候,可以直接调用getXml(int id)方法来获取XML文档,并对该文档进行解析,默认使用内置的Pull解析器来解析。
·国际化资源:
字符串消息:开发者需为values目录添加不同语言国家版本,values-语言代码-r 国家代码
图片:为drawable目录添加不同语言国家版本,drawable-语言代码-r 国家代码
【问题】
·问:Android默认使用内置Pull解析器解析XML文件,Pull解析器?
答:常见的XML解析方式有三种,DOM、SAX、Pull,Android系统中推荐使用Pull。Pull解析器是一个开源的Java项目,Android系统内部解析XML文件均为此种方式,也可用于JavaEE项目。Android
SDK中已经集成了Pull解析器,无需添加任何jar文件。Pull解析器运行方式与SAX类似,提供各种事件的判断。其官方网站:http://xmlpull.org/。
使用Pull解析器解析XML文件:
① Xml.newPullParser() 获得解析器
② parser.setInput(in, "UTF-8") 设置输入流以及编码
③ parser.next() 获取下一个解析事件,得到一个事件代码
④XmlPullParser中定义了常量来标识各种解析事件
START_DOCUMENT、END_DOCUMENT 、START_TAG 、END_TAG 、TEXT