乐读文学

Android从入门到精通

乐读文学 > 科普学习 > Android从入门到精通

第88页

书籍名:《Android从入门到精通》    作者:明日科技










@drawable/background









主题资源定义完成后,就可以使用该主题了。在Android中,提供了以下两种使用主题资源的方法。

[√]在AndroidManifest.xml文件中使用主题资源

在AndroidManifest.xml文件中使用主题资源比较简单,只需要使用android:theme属性指定要使用的主题资源即可。例如,要使用名称为bg的主题资源,可以使用下面的代码:

android:theme="@style/bg"

android:theme属性是AndroidManifest.xml文件中标记和标记的共有属性,如果要使用的主题资源作用于项目中的全部Activity上,可以使用标记的android:theme属性,也就是为标记添加android:theme属性,关键代码如下:



如果要使用的主题资源作用于项目中的指定Activity上,那么可以在配置该Activity时,为其指定android:theme属性,关键代码如下:



说明:  在Android应用中,android:theme属性值还可以使用Android  SDK提供的一些主题资源,这些资源我们只需使用即可。例如,使用android:theme="@android:style/Theme.NoTitleBar"后,屏幕上将不显示标题栏。

[√]在Java文件中使用主题资源

在Java文件中也可以为当前的Activity指定使用的主题资源,这可以在Activity的onCreate()方法中通过setTheme()方法实现,例如,下面的代码就是指定当前Activity使用名称为bg的主题资源。

@Override



public  void  onCreate(Bundle  savedInstanceState)  {



super.onCreate(savedInstanceState);



setTheme(R.style.bg);



setContentView(R.layout.main);



}

注意:  在Activity的onCreate()方法中设置使用的主题资源时,一定要在为该Activity设置布局内容前设置(也就是在setContentView()方法之前设置),否则将不起作用。

使用bg主题资源后,运行默认的MainActivity时,屏幕的背景不再是默认的黑色,而是如图8.12所示的图片。



图8.12 更改主题的MainActivity的运行结果





8.8 原始XML资源

教学录像:光盘\TM\lx\8\原始XML资源.exe

在定义资源文件时,使用的也是XML文件,这些文件不属于本节要介绍的原始XML资源。这里所说的原始XML资源,是指一份格式良好的、没有特殊要求的普通XML文件。它一般保存在res\xml目录(在创建Android项目时,没有自动创建xml目录,需要手动创建)中,通过Resources.getXml()方法来访问。

下面通过一个具体的实例来介绍如何使用原始XML资源。

例8.5   在Eclipse中创建Android项目,名称为8.5,实现从保存客户信息的XML文件中读取客户信息并显示。(实例位置:光盘\TM\sl\8\8.5)

(1)修改新建项目的res\layout目录下的布局文件main.xml,为默认添加的TextView组件设置文字大小、id属性以及默认显示的文本,关键代码如下:




android:id="@+id/show"



android:textSize="28px"



android:layout_width="match_parent"



android:layout_height="wrap_content"



android:text="正在读取XML文件..."  />

(2)在res目录中,创建一个名称为xml的目录,然后在该目录中创建一个名称为customers.xml的文件,在该文件中,添加一个名称为customers的根节点,并在该节点中添加3个customer子节点,用于保存客户信息。customers.xml文件的具体代码如下:























(3)打开默认创建的MainActivity,在onCreate()方法中,首先获取XML文档,然后通过while循环(循环的条件是不能到文档的结尾)对该XML文档进行遍历,在遍历时,首先判断是否为指定的开始标记,如果是则获取各属性,否则遍历下一个标记,一直遍历到文档的结尾,最后获取显示文本框,并将获取的结果显示到该文本框中。关键代码如下:

XmlResourceParser  xrp=getResources().getXml(R.xml.customers);  //获取XML文档



StringBuilder  sb=new  StringBuilder("");  //创建一个空的字符串构建器



try  {



//如果没有到XML文档的结尾处



while(xrp.getEventType()!=XmlResourceParser.END_DOCUMENT){



if(xrp.getEventType()==XmlResourceParser.START_TAG){  //判断是否为开始标记



String  tagName=xrp.getName();  //获取标记名



if(tagName.equals("customer")){  //如果标记名是customer



sb.append("姓名:"+xrp.getAttributeValue(0)+"  ");  //获取客户姓名