570 likes | 765 Views
3G 移动互联网应用技术开发. 第四章: Android SDK 中的资源. 课程回顾. 提问: Android 系统中控件的单击事件有几种写法 ? 如何理解 gen/R.java 文件的功能? 请您简述 AndroidMainfast.xml 文件在项目中的作用?. 本章概述. 资源是 Android 应用中的重要组成部分。 Android 应用可以通过使用各种 资源,设置颜色、字体大小、风格等属性,也可以通过资源存储图像、数 组等常用资源。本章将详细 Android SDK 中的各种资源及使用。. 本章目标. 了解 Android 中资源的简介
E N D
3G移动互联网应用技术开发 第四章:Android SDK中的资源
课程回顾 • 提问: • Android系统中控件的单击事件有几种写法? • 如何理解gen/R.java文件的功能? • 请您简述AndroidMainfast.xml文件在项目中的作用?
本章概述 资源是Android应用中的重要组成部分。Android应用可以通过使用各种 资源,设置颜色、字体大小、风格等属性,也可以通过资源存储图像、数 组等常用资源。本章将详细Android SDK中的各种资源及使用。
本章目标 • 了解Android中资源的简介 • 掌握Android中的资源访问方法 • 掌握Android中的常用资源使用方法 • 掌握Android中的各种视图布局资源 • 理解Android中的assets资源访问方法
Android中的资源简介 • Android 中的资源是在代码中使用的外部文件。这些文件作为应用程序 的一部分,被编译到应用程序当中。Android 中支持大量的资源文件,如 XML文件、图片文件、音频和视频文件。(XML文件的格式有不同的写法) • 本章我们将讲解如何创建资源文件,以及如何在代码中使用和如何在其 他资源文件中引用该资源。在代码中我们使用Context和getResources()方 法得到Resources对象,该对象提供了获得各种类型资源的方法。在其他资 源中引用资源的一般格式是这样的: 举例:下面代码是在布局文件中引用颜色资源、字符串资源和尺寸资源: @ [包名称] : 资源类型 / 资源名称
Android中的资源分类 我们可以在工程的res目录下创建和保存各种不同类型的资源文件。这些 资源文件要有一定的布局和格式。Android使用资源编译器工具AAPT来编译 这些资源文件。下表展示了Android中的资源的布局和类型。
Android中的资源文件的使用 资源文件的使用分为在代码中使用和在其他资源文件中引用两种方式。 在我们编译的一个Android应用时,Android会自动生成一个R类,在该类中 根据不同的资源类型又生成了相应的内部类,该类包含了系统中使用到的 所有资源文件的标示,它将每个资源转换成十六进制码管理,其内容如下 所示:
Android中的资源文件的使用 • 第一种:在程序代码中使用资源文件 在代码中访问资源文件,我们是通过使用R资源类中定义的资源文件类型和资源文件名称来访问的。具体语法格式如下: • (资源类型) findViewById (R.资源文件类型.资源文件名称) ; • 举例:下面MainActivity.java类中对资源文件的代码引用片段
Android中的资源文件的使用 • 说明: 程序除了访问自己的资源文件外还可以访问系统中的资源文件(data/res目录下)。大部分的资源文件被定义在android包下的R类中。访问系统中的资源文件格式为: • android . R . 资源文件类型 . 资源文件名称 • 举例:访问动画、数组、颜色、尺寸等系统资源文件
Android中的资源文件的使用 • 第二种:在其他资源文件中引用资源文件 我们经常会在布局文件的元素属性中引用其他资源文件,经常用到得有字符串、图片、颜色等资源。例如,下列布局文件中的TextView组件引用了一个字符串来表示文本内容,引用了一个颜色来表示文本颜色,引用一个尺寸来表示文本尺寸。 • 举例:
Android中的颜色资源(color)的使用 • 颜色值定义 颜色值的定义是通过RGB三原色和一个alpha值来定义的。颜色值定义的开始是一个井号(#),后面是Alpha-Red-Green-Blue格式。例如: • #RGB • #ARGB • #RRGGBB • #AARRGGBB
颜色资源XML文件的定义 • 下面通过一个表格来展示颜色资源文件XML文件的定义和使用。
颜色资源的配置 • 下面通过一个实例来演示颜色资源的使用,本实例的功能是定义两个颜色资源:红色背景和蓝色文字。实例步骤如下: 定义一个名称为“ch04_app01_colors”的Android工程,在该工程的res\values\目录下,定义一个colors.xml颜色资源文件,内容如下:
颜色资源的调用 在该工程的res\layout\目录下定义一个布局资源文件test_color.xml,在该文件中添加一个TextView视图组件,引用颜色资源,设置视图组件TextView的文字颜色为蓝色。 在xml颜色资源文件中,设置字体颜色为【蓝色】
颜色资源在Java代码中的调用方法 定义一个MainActivity类,引用颜色资源文件,设置背景颜色为红色。 在Java代码中,引用并设置背景资源颜色
颜色资源运行效果 程序运行结果,如下: • 演示开发过程
Android中的字符串(string)资源的使用 在一个Android工程中,我们可能会使用到大量的字符串作为提示 信息。这些字符串都可以作为字符串资源声明在资源文件中,从而实现程 序的可配置性。 在代码中我们使用Context.getString()方法,通过传递资源ID参数来得 到该字符串,也可以在其他资源文件中引用字符串资源,引用格式为: • @ string / 字符串资源名称
字符串(string)资源XML文件的定义 • 下面通过一个表格来展示字符串资源文件XML文件的定义和使用。
字符串(string)资源的配置文件 • 下面通过一个实例来演示字符串资源的使用,本实例的功能是定义两个字符串资源:一个在布局文件中引用;另一个在Java代码中引用。实例步骤如下: 定义一个名称为“ch04_app02_strings”的Android工程,在该工程的res\values\目录下,编辑字符串资源文件strings.xml,内容如下:
字符串(string)资源的调用 在该工程的res\layout\目录下定义一个布局资源文件test_string.xml,在该文件中添加两个TextView视图组件,第一个TextView的文本内容直接引用strings.xml文件中的资源;第二个TextView的文本内容在代码中设置。 在xml资源文件中引用strings.xml文件中的字符串资源
字符串(string)资源的在Java代码中的调用 定义一个MainActivity类,在onCreate()方法中,设置当前的视图布局,并获得TextView实例。通过Context.getString()方法,从字符串资源中获得字符串常量,并将其设置为TextView的文本内容。 在Java代码中,引用并字符串资源
字符串(string)资源的运行效果 程序运行结果,如下: • 演示开发过程
Android中的尺寸资源(dimen)的使用 我们可以使用一些常用的尺寸单位来定义一些文字尺寸、视图组件的宽 和高等。尺寸资源是一个数字类型的数据,被定义在res\values\dimens.xml 文件中。 在计算中一般我们会用到的尺寸单位有厘米(cm)、毫米(mm)、像 素(px)、英尺(in)等。Android中支持尺寸单位如下表:
尺寸资源(dimen)的XML文件定义 • 尺寸资源是定义在XML文件中的一些整形数值。有关尺寸资源的定义如下:
尺寸资源(dimen)的配置 • 下面通过一个实例来演示尺寸资源的方法。该实例在布局文件中添加一个TextView和一个Button,分别使用尺寸资源文件来定义它们的宽和高。 定义一个名称为“ch04_app03_dimens”的Android工程,在该工程的res\values\目录下,编辑字符串资源文件dimens.xml,内容如下:
尺寸资源(dimen)的调用 在该工程的res\layout\目录下定义一个布局资源文件test_dimen.xml,在该文件中添加一个TextView视图组件和一个Button。TextView的宽和高引用尺寸资源来设置。Button的宽和高代码中设置。
尺寸资源(dimen)在Java代码中的调用 定义一个MainActivity类,在该类顶部声明使用的Button视图组件,在onCreate()方法中实例化该组件,并定义尺寸资源设置其宽和高。 在Java代码中,引用并尺寸资源
尺寸资源(dimen)的运行效果 程序运行结果,如下: • 演示开发过程
图片资源(drawables)的使用及XML定义 • Drawable资源是一些图片或者颜色资源,主要用来绘制屏幕,通过 Resources.getDrawable()方法获得。Drawable资源分为三类:Bitmap File(位 图文件)、Color Drawable(颜色)、Nine-Patch Image(九片图片)。我们 只为大家讲述最常用的位图文件的使用。
图片资源(drawable)的配置 • 下面我们通过一个实例的方式演示位图文件的使用。本实例首先在res/drawable目录下添加两个图片文件。并将这两个图片显示在Activity中的ImageView控件中。 定义一个名称为“ch04_app04_drawable”的Android工程,在该工程的res\drawable\目录下存放两个图片文件,内容如下:
图片资源(drawable)的调用 在该工程的res\layout\目录下定义一个布局资源文件test_bitmap.xml,在该文件中添加两个视图组件ImageVIew。其中一个ImageView组件直接引用a.jpg,第二个在Java代码中进行设置。
图片资源(drawable)在Java代码中的调用 定义一个MainActivity类,在该类的顶部声明一个ImageView组件,同时在onCreate()方法中实例化该组件,并通过Resource.getDrawable()方法获得位图资源,将ImageView组件设置为可显示的图片。 在Java代码中,引用并图片资源
图片资源(drawable)的运行效果 程序运行结果,如下: • 演示开发过程
样式资源(style)的使用及XML定义 • 如果多个组件都需要同样的风格(属性),则可以在res/values下使用XML文件存储类型资源,类型使用<style name=“xx”>标签指定。
样式资源(style)的配置 • 下面我们通过一个实例的方式演示样式资源文件的使用。本实例首先在res/values目录下添加一个styles.xml文件。并在其中设置一个mystyle资源规则,该规则中设置了组件常见的两个属性。 定义一个名称为“ch04_app05_style”的Android工程,在该工程的res\values\目录下创建stlyes.xml文件,如下:
样式资源(style)的调用 在该工程的res\layout\目录下定义一个布局资源文件test_style.xml,在该文件中添加一个视图组件TextView。并对其进行如下设置。
样式资源(style)在Java代码中的调用 定义一个MainActivity类,在onCreate()方法中实例化该组件,并通过对当前视图组件的调用即可。
样式资源(style)的运行效果 程序运行结果,如下: • 演示开发过程
数组资源(array)的使用及XML定义 • 在res/values下可以存放表示数组资源的xml文件,可以包括字符串数组和整数型数组两种,分别使用<string-array>和<integer-array>标签设置。
数组资源(array)的配置 • 下面我们通过一个实例的方式演示数组资源文件的使用。本实例首先在res/values目录下添加一个arrays.xml文件。并在其中设置一个字符串型数组和一个整型数组类型。 定义一个名称为“ch04_app06_array”的Android工程,在该工程的res\values\目录下创建arrays.xml文件,如下:
样式资源(style)的调用 在该工程的res\layout\目录下定义一个布局资源文件test_style.xml,在该文件中添加一个视图组件TextView。并对其进行如下设置。
数组资源(array)在Java代码中的调用 定义一个MainActivity类,在onCreate()方法中创建一个系统资源对象Resources,并且实例化该组件,并通过getStringArray()和getIntArray()方法分别获取资源文件中的数据。
样式资源(style)的运行效果 程序运行结果,如下: • 演示开发过程
原始XML资源的使用 • 如果工程中用到一些原始的XML文件,那么,我们可以定义一些XML文件供工程使用。XML文件定义在工程的res/xml目录下,通过Resources.getXML()方法进行文件的加载并访问。
原始XML资源(array)的配置 • 下面我们通过一个实例的方式演示XML资源文件的使用。本实例首先在res目录下创建一个xml目录同时添加一个test.xml文件。并在其中设置一些相关的自定义数据信息。 定义一个名称为“ch04_app07_xml”的Android工程,在该工程的res\xml\目录下创建test.xml文件,如下:
原始XML资源(array)的配置 在该工程的res\layout\目录下定义一个布局资源文件test_xml.xml,在该文件中添加一个按钮控件Button和一个视图组件TextView。并对其进行如下设置。
原始XML资源在Java代码中的调用 定义一个MainActivity类,在onCreate()方法中实例化该组件,并通过对当前视图组件的调用即可。
原始XML资源的运行效果 程序运行结果,如下: • 演示开发过程
布局资源在Android开发中的应用 • 所谓布局就是组件在Activity中的呈现方式,及组件的大小、间距和对其方式等。Android提供了一下两种创建布局的方式: • 在xml配置文件中声明:这种方式是将需要呈现的组件在配置文件中进行声明,在程序中通过setContentView(R.layout.main)方法将试图呈现在Activity中,通过findViewById方法获得组件实例(推荐) • 在程序中通过“硬代码”直接实例化布局及其组件。 • 在Android中常见的布局方式有如下几种: • 线性布局(linearLayout):按照垂直或者水平方向布局组件 • 帧布局(FrameLayout):组件从屏幕左上角坐标布局组件 • 表格布局(Tablelayout):按照行列方式布局组件 • 相对布局(RelativeLayout):相对其他组件的布局方式 • 绝对布局(AbsoluteLayout):按照绝对坐标来布局组件
线性布局(LinearLayout)的应用 • 线性布局是将子组件按照垂直或者水平方向来布局,方向控制有“android:orientation”属性来控制,属性的值有垂直(vertical)和水平(horizontal)两种。另外一个常用属性是“android:gravity”,来控制左右上下对齐方式,其属性值有上(top)、下(bottom)、左(left)、右(right)。 • 下面的实力是将几个TextVIew通过LinearLayout以不同的方向来布局。其中使用LinearLayout外层垂直布局、内层水平布局和下面垂直布局。