Android移动开发基础教程第2章-Android界面开发课件.pptx

上传人(卖家):三亚风情 文档编号:3376279 上传时间:2022-08-25 格式:PPTX 页数:116 大小:4.46MB
下载 相关 举报
Android移动开发基础教程第2章-Android界面开发课件.pptx_第1页
第1页 / 共116页
Android移动开发基础教程第2章-Android界面开发课件.pptx_第2页
第2页 / 共116页
Android移动开发基础教程第2章-Android界面开发课件.pptx_第3页
第3页 / 共116页
Android移动开发基础教程第2章-Android界面开发课件.pptx_第4页
第4页 / 共116页
Android移动开发基础教程第2章-Android界面开发课件.pptx_第5页
第5页 / 共116页
点击查看更多>>
资源描述

1、刘 刚 主 编高伟南 副主编2.1 视图组件与视图容器 在学习一些具体的控件之前,我们首先来了解几个基本的概念:控件、在学习一些具体的控件之前,我们首先来了解几个基本的概念:控件、View(视图)和(视图)和 ViewGroup(视图容器),然后再来了解开发用户界面(视图容器),然后再来了解开发用户界面的方式。控件是组成的方式。控件是组成 Android 界面最基本的元素,每一个按钮或文本框都界面最基本的元素,每一个按钮或文本框都是控件。是控件。View 是所有控件的基类。是所有控件的基类。ViewGroup 可以控制子控件的布局和可以控制子控件的布局和显示。下面我们以图显示。下面我们以图 2

2、.1 为例,分别介绍这几个概念。为例,分别介绍这几个概念。1 1控件控件 图图 2.1 2.1 所示的是手机所示的是手机 QQ QQ 的一个登录界面,界面中包含账号输入框、的一个登录界面,界面中包含账号输入框、密码输入框、登录按钮等,这些基本元素称为控件或者组件,它们组合在一密码输入框、登录按钮等,这些基本元素称为控件或者组件,它们组合在一起形成了起形成了 Android Android 的用户界面。的用户界面。2 2View View View View 是所有控件的基类,是所有控件的基类,Android Android 界面中显示的所有控件都继承自界面中显示的所有控件都继承自 ViewVi

3、ew,所以它是,所以它是 Android Android 界面开发的基础。界面开发的基础。View View 不仅包括控件的绘制,不仅包括控件的绘制,还包括一系列的事件处理,使得用户可以与界面进行交互。还包括一系列的事件处理,使得用户可以与界面进行交互。例如可以给图例如可以给图 2.1 2.1 所示的所示的“登录登录”按钮设置监听事件,当用户单击按按钮设置监听事件,当用户单击按钮时,后台去执行登录操作。钮时,后台去执行登录操作。在创建一个在创建一个 View View 的时候,开发者通常需要执行以下一些常见的操作。的时候,开发者通常需要执行以下一些常见的操作。(1 1)设置属性:)设置属性:V

4、iew View 的大小、位置、颜色等信息。的大小、位置、颜色等信息。(2 2)设置焦点:)设置焦点:View View 是否需要获得焦点,在不同的操作下焦点如何移动。是否需要获得焦点,在不同的操作下焦点如何移动。(3 3)事件监听:有些时候,开发者需要对)事件监听:有些时候,开发者需要对 View View 设置一些监听事件,例如设置一些监听事件,例如当当 View View 获得焦点或者被单击时可以做一些自定义的操作。获得焦点或者被单击时可以做一些自定义的操作。(4 4)可见性:开发者可以动态地控制)可见性:开发者可以动态地控制 View View 的显示或者隐藏。的显示或者隐藏。3 3V

5、iewGroup ViewGroup 在在 Android Android 中,管理控件的大小和控件之间的排列顺序称为布局管理,中,管理控件的大小和控件之间的排列顺序称为布局管理,ViewGroup ViewGroup 可以实现布局管理。许多刚接触可以实现布局管理。许多刚接触 Android Android 的人都不是太了解的人都不是太了解 ViewGroup ViewGroup 和和 View View 之间的关系,其实,之间的关系,其实,ViewGroup ViewGroup 是是View View 的一个重要的一个重要子类。子类。ViewGroup ViewGroup 可以理解为视图容器

6、,开发者可以向其中添加一些基本可以理解为视图容器,开发者可以向其中添加一些基本的控件。例如在图的控件。例如在图 2.1 2.1 所示界面中,账号和密码两个输入框如何保持对齐,所示界面中,账号和密码两个输入框如何保持对齐,“登录登录”按钮如何居中显示,这些都可以通过将控件放入按钮如何居中显示,这些都可以通过将控件放入 ViewGroup ViewGroup 中来中来管理。管理。ViewGroup ViewGroup 是一个抽象类,在开发过程中,通过实现它的子类来排是一个抽象类,在开发过程中,通过实现它的子类来排列控件的显示位置。列控件的显示位置。Android Android 中所有的界面都建立

7、中所有的界面都建立在在 View View 和和 ViewGroup ViewGroup 的基础上,的基础上,ViewGroup ViewGroup 除了装载普通控件,还除了装载普通控件,还可以再次包含可以再次包含 ViewGroup ViewGroup 组件。图组件。图 2.2 2.2 是一个是一个 Android Android 界面的层次结界面的层次结构图。构图。4 4开发用户界面的方式开发用户界面的方式 Android Android 支持使用以下两种方式定义用户界面。支持使用以下两种方式定义用户界面。(1 1)通过)通过 Java Java 代码定义控件并设置控件的属性。代码定义控件

8、并设置控件的属性。(2 2)通过)通过 XML XML 文件控制控件的布局和属性。文件控制控件的布局和属性。通过通过 XML XML 布局文件控制布局文件控制 Android Android 的界面,可以使界面的设计更加简的界面,可以使界面的设计更加简单清晰,具有更低的耦合性。单清晰,具有更低的耦合性。而且这种方式可以将视图的逻辑从而且这种方式可以将视图的逻辑从 Java Java 代码中抽离出来,更加符合代码中抽离出来,更加符合 MVCMVC(一种用模型(一种用模型视图视图控制器设计创建控制器设计创建 Web Web 应用程序的模式)的设计应用程序的模式)的设计原则。原则。Android A

9、ndroid 也推荐使用也推荐使用 XML XML 的方式设计界面。的方式设计界面。2.2 常用布局 在在 Android Android 界面开发中,控件的布局非常重要,布局可以用来管理控件的界面开发中,控件的布局非常重要,布局可以用来管理控件的分布和大小。不同的布局管理可以产生不同的布局效果,开发者需要根据不同的分布和大小。不同的布局管理可以产生不同的布局效果,开发者需要根据不同的应用场景选择合适的布局管理,本节我们将介绍一些常用的布局方式。应用场景选择合适的布局管理,本节我们将介绍一些常用的布局方式。2.2.1 2.2.1 线性布局线性布局 线性布局通过线性布局通过 LinearLayo

10、ut LinearLayout 类来实现,类来实现,LinearLayout LinearLayout 是前述是前述ViewGroup ViewGroup 的子类,是一个视图容器,可以向其中添加不同的控件。的子类,是一个视图容器,可以向其中添加不同的控件。LinearLayout LinearLayout 将控件将控件一个挨着一个排列起来,排列的顺序有横向排列和纵向排列。例如图一个挨着一个排列起来,排列的顺序有横向排列和纵向排列。例如图 2.1 2.1 所示所示的手机的手机 QQ QQ 的登录页面中,账号输入框和密码输入框顺序排列,就可以通过将这的登录页面中,账号输入框和密码输入框顺序排列,就

11、可以通过将这两个控件放入两个控件放入 LinearLayout LinearLayout 中来实现。中来实现。图图 2.3 2.3 所示的是一个简化所示的是一个简化的登录界面的一部分,有一个文的登录界面的一部分,有一个文本框会提示用户输入用户名,后本框会提示用户输入用户名,后面紧跟着一个编辑框供用户输入面紧跟着一个编辑框供用户输入具体的内容。具体的内容。p 案例分析案例分析 在在 act_layout_horizontal.xml act_layout_horizontal.xml 文件中,首先定义了一个文件中,首先定义了一个LinearLayout LinearLayout 布局,其中以布局

12、,其中以 android:android:开头的开头的xml xml 属性设置了组件的一些参数。属性设置了组件的一些参数。android:layout_width android:layout_width 和和 android:layout_height android:layout_height 分别设置了组件的分别设置了组件的宽度和高度,有宽度和高度,有 3 3 种合理的取值方式,分别如下所示。种合理的取值方式,分别如下所示。(1 1)match_parent/fill_parentmatch_parent/fill_parent:设置当前:设置当前 View View 的大小尽可能和父控

13、件的的大小尽可能和父控件的大小一致,在大小一致,在 API Level 8 API Level 8以后以后 fill_parent fill_parent 被废弃,使用被废弃,使用match_parentmatch_parent。(2 2)wrap_contentwrap_content:设置当前:设置当前 View View 的大小自适应要显示的内容。的大小自适应要显示的内容。(3 3)固定值:设置当前)固定值:设置当前 View View 的尺寸为固定大小。的尺寸为固定大小。下面我们给出一个示例,运行结果如下面我们给出一个示例,运行结果如图图 2.4 2.4 所示。读者可以根据运行结果去理

14、所示。读者可以根据运行结果去理解布局文件,用到的控件和案例解布局文件,用到的控件和案例 2.1 2.1 一致,一致,注意其中注意其中 android:orientation android:orientation 的值。的值。2.2.2 2.2.2 相对布局相对布局 相对布局主要通过相对布局主要通过 RelativeLayout RelativeLayout 类来实现,对于有些界面,如果类来实现,对于有些界面,如果很难用线性布局实现,或者使用线性布局嵌套的层次太深,可以考虑使用更很难用线性布局实现,或者使用线性布局嵌套的层次太深,可以考虑使用更灵活的相对布局。灵活的相对布局。相对布局容器中子控

15、件的位置是由父控件或者其他兄弟控件定义的。相对布局容器中子控件的位置是由父控件或者其他兄弟控件定义的。可以使当前的控件与其他控件的边界对齐,或者在某个控件的下面,又或者可以使当前的控件与其他控件的边界对齐,或者在某个控件的下面,又或者在父控件的中间位置。在父控件的中间位置。例如在图例如在图 2.1 2.1 所示的手机所示的手机 QQ QQ 的登的登录页面中,我们可以通过纵向线性布局去录页面中,我们可以通过纵向线性布局去排列每一个控件,也可以通过相对布局实排列每一个控件,也可以通过相对布局实现,如可以设置密码输入框在账号输入框现,如可以设置密码输入框在账号输入框的下面,的下面,“登录登录”按钮在

16、布局中水平居中。按钮在布局中水平居中。在相对布局中,子控件默认会从布局的左在相对布局中,子控件默认会从布局的左上角开始显示,所以,需要通过一些属性上角开始显示,所以,需要通过一些属性去设置控件的位置,常见的属性如表去设置控件的位置,常见的属性如表 2.1 2.1 所示。所示。下面我们通过一个示例看一下相对布局的用法,运行结果如图下面我们通过一个示例看一下相对布局的用法,运行结果如图 2.5 2.5 所示。所示。p 案例分析案例分析 在图在图 2.5 2.5 所示界面中,第所示界面中,第 1 1 个个 TextView TextView 仅仅设置了控件的大小、文仅仅设置了控件的大小、文字的颜色、

17、尺寸等,控件默认显示在布局的左上角。第字的颜色、尺寸等,控件默认显示在布局的左上角。第 2 2 个个 TextView TextView 设置设置了了 android:layout_centerVertical=true android:layout_centerVertical=true属性,控件垂直居中显示在布属性,控件垂直居中显示在布局中。第局中。第 3 3 个个 TextView TextView 设置了设置了android:layout_centerInParent=trueandroid:layout_centerInParent=true属性,控件处于布局的正中间位置。第属性,控

18、件处于布局的正中间位置。第 4 4 个个 TextView TextView 设置了设置了android:android:layout_above=id/txt3layout_above=id/txt3和和 android:layout_ alignLeft=id/txt3 android:layout_ alignLeft=id/txt3属属性,控件位于性,控件位于 txt3 txt3 的上方,且的上方,且 txt4 txt4 控件的左边界与控件的左边界与 txt3 txt3 控件的左边界控件的左边界对齐。类似地,第对齐。类似地,第 5 5 个个 TextView TextView 在第在第

19、 3 3 个个 TextView TextView 的右边,且两个控的右边,且两个控件的上边界是对齐的。件的上边界是对齐的。2.2.3 2.2.3 列表视图列表视图 ListView ListView 是是 Android Android 中一个常用的控件,可以实现列表视图,它展示中一个常用的控件,可以实现列表视图,它展示了一个垂直可滑动的下拉列表,例如图了一个垂直可滑动的下拉列表,例如图 2.6 2.6 所示的是手机中常见的文件管理所示的是手机中常见的文件管理页面,打开之后会有一个列表显示手机中所有的文件夹,其中的每一行称为页面,打开之后会有一个列表显示手机中所有的文件夹,其中的每一行称为

20、ListView ListView 的一个子项。的一个子项。ListView ListView 同样继承自同样继承自 ViewGroup ViewGroup,但是和之前的,但是和之前的 LinearLayoutLinearLayout、RelativeLayout RelativeLayout 不同,不同,ListView ListView 不是用来控制子控件的不是用来控制子控件的布局,而是可以根据数据源动态地添加每一个子项,需要显示的列表项由布局,而是可以根据数据源动态地添加每一个子项,需要显示的列表项由 Adapter Adapter 类提供。这样的设计也很好地符合了类提供。这样的设计也很

21、好地符合了 MVC MVC原则,原则,ListView ListView 只负责只负责视图的显示,而视图的显示,而 Adapter Adapter 则提供需要显示的数据。同时,这里还用到了一个则提供需要显示的数据。同时,这里还用到了一个设计模式:适配器模式。设计模式:适配器模式。Adapter Adapter 提供了将数据源转换成适合提供了将数据源转换成适合 ListView ListView 显显示的接口。示的接口。ListView ListView 有几个常用的属性,如表有几个常用的属性,如表 2.2 2.2 所示。所示。利用列表视图可以实现如图利用列表视图可以实现如图 2.7 2.7 所

22、示的效果。所示的效果。案例分析案例分析 在布局文件中,只定义了一个在布局文件中,只定义了一个 ListView ListView 控件,控件,ListView ListView 设置了设置了android:android:divider divider 属性,定义了属性,定义了 ListView ListView中两个子项的分隔条,可以指定为固定颜色或中两个子项的分隔条,可以指定为固定颜色或者者 Drawable Drawable 资源,这里我们重点关注资源,这里我们重点关注 ListView ListView 的用法,所以直接设置了一个的用法,所以直接设置了一个颜色值。颜色值。android

23、:dividerHeight android:dividerHeight 设置了分隔条的高度。设置了分隔条的高度。android:entries android:entries 设设置了置了 ListView ListView需要显示的数据,这里通过需要显示的数据,这里通过array array 引用了一个数组资源文件。资引用了一个数组资源文件。资源文件在源文件在 2.6 2.6 节会有详细介绍。在节会有详细介绍。在Activity Activity 中加载上述布局即可看到案例效果。中加载上述布局即可看到案例效果。在在 XML XML 文件中直接设置数据源的方式简单,但不够灵活。可以通过文件中

24、直接设置数据源的方式简单,但不够灵活。可以通过 Adapter Adapter 类为类为 ListView ListView 填充数据,根据数据类型的不同,填充数据,根据数据类型的不同,Android Android 系系统提供了统提供了 ArrayAdapter ArrayAdapter、ListAdapterListAdapter、SimpleCursorAdapterSimpleCursorAdapter。p 案例分析案例分析 布局文件是在案例布局文件是在案例 2.4 2.4 的基础上去掉的基础上去掉 android:entries android:entries 属性,运行结属性,运行

25、结果和图果和图 2.7 2.7 所示的一致。本例中,我们首先通过所示的一致。本例中,我们首先通过 findViewById findViewById 方法得到方法得到 ListView ListView 控件,从该方法的命名也可以看出,它是通过控件的控件,从该方法的命名也可以看出,它是通过控件的id id 来获取控件来获取控件对象的。然后定义了一个对象的。然后定义了一个 ArrayAdapter ArrayAdapter 对象,构造方法传入了对象,构造方法传入了 3 3 个参数,个参数,第第 1 1 个参数为一个个参数为一个 Context Context 对象,传对象,传 this this

26、 即可。第即可。第 2 2 个参数是一个布局个参数是一个布局文件,它定义了文件,它定义了 ListView ListView 每一项的外观,传入的参数是每一项的外观,传入的参数是 Android Android 系统自带系统自带的一个布局文件,设置每个列表项都是一个普通的的一个布局文件,设置每个列表项都是一个普通的 TextView TextView。第。第 3 3 个参数是个参数是一个字符串数组,定义了列表显示的数据。一个字符串数组,定义了列表显示的数据。在实际使用在实际使用 ListView ListView 的过程中,系统已有的的过程中,系统已有的 Adapter Adapter 类很难

27、满足各类很难满足各种各样的需求,这个时候,可以通过自定义种各样的需求,这个时候,可以通过自定义 Adapter Adapter 填充数据。假设需要填充数据。假设需要开发一个下拉列表显示学生的考试信息,每一个子项分别显示学生的姓名和开发一个下拉列表显示学生的考试信息,每一个子项分别显示学生的姓名和考试成绩,运行结果如图考试成绩,运行结果如图 2.8 2.8 所示。所示。p 案例分析案例分析 CustomAdapter CustomAdapter 类继承自类继承自 BaseAdapter BaseAdapter 类,构造函数接受两个参数,一类,构造函数接受两个参数,一个是个是 Context Co

28、ntext 对象,一个是数据源,数据源不限于对象,一个是数据源,数据源不限于 List List 类型,可以是其他类类型,可以是其他类型。型。CustomAdapter CustomAdapter 类重写了父类的相关方法,其中最重要的是类重写了父类的相关方法,其中最重要的是 getView getView 方法,方法,系统会多次调用系统会多次调用 getView getView 方法去生成方法去生成 ListView ListView 的每一项。在的每一项。在 getView getView 方法方法中,通过中,通过 inflate inflate 方法加载了一个布局文件方法加载了一个布局文件

29、 view_list_ item.xml view_list_ item.xml,这个布,这个布局文件定义了局文件定义了 ListView ListView 每一个子项的外观。每一个子项的外观。getView getView 有一个入参是有一个入参是positionposition,它代表当前是它代表当前是 ListView ListView 中的第几项。在代码中可以通过中的第几项。在代码中可以通过position position 获取对应的获取对应的数据,然后设置给每一个子项中的控件。在数据,然后设置给每一个子项中的控件。在view_list_item.xml view_list_item

30、.xml 布局中,定义布局中,定义了两个了两个 TextView TextView 分别用于显示学生的姓名和成绩。分别用于显示学生的姓名和成绩。2.2.4 2.2.4 网格视图网格视图 GridView GridView 也是也是 Android Android 中常用的一个组件,可以实现网格视图。中常用的一个组件,可以实现网格视图。GridView GridView 和和ListView ListView 都继承自都继承自 AbsListView AbsListView,所以两者在功能和用,所以两者在功能和用法上都比较类似。但是网格视图是一个二维视图,例如图法上都比较类似。但是网格视图是一个

31、二维视图,例如图 2.9 2.9 所示的是手所示的是手机机 QQ QQ 上的游戏中心页面,每个游戏的图标以网格的形式排列,可以上下滑上的游戏中心页面,每个游戏的图标以网格的形式排列,可以上下滑动。动。和和 ListView ListView 一样,一样,GridView GridView 只负责视图的显示,数据源由只负责视图的显示,数据源由 Adapter Adapter 提供。提供。GridView GridView 也有一些需要设置的属性,如表也有一些需要设置的属性,如表 2.3 2.3 所示。所示。本案例我们只是简单定义一个本案例我们只是简单定义一个 GridView GridView,

32、设置设置 GridView GridView 的相关参数,说明的相关参数,说明 GridView GridView 的的用法,运行结果如图用法,运行结果如图 2.10 2.10 所示。所示。p 案例分析案例分析 从代码中可以看到,从代码中可以看到,GridView GridView 的使用方法和的使用方法和 ListView ListView 非常类似,非常类似,都是通过都是通过 setAdapter setAdapter 方法给视图设置数据源,方法给视图设置数据源,Adapter Adapter 的自定义方式的自定义方式与与 2.2.3 2.2.3 节介绍的也一致。节介绍的也一致。2.3 常

33、用控件2.3.1 2.3.1 文本框和编辑框文本框和编辑框 文本框通过文本框通过 TextView TextView 控件实现,用于文字的显示。编辑框通过控件实现,用于文字的显示。编辑框通过 EditText EditText 实现,它继承自实现,它继承自 TextView TextView,属性和用法与,属性和用法与 TextView TextView 一致,只不过它允许用户一致,只不过它允许用户改变其中的内容。文本框的属性如表改变其中的内容。文本框的属性如表 2.4 2.4 所示。所示。本例配置文件中定义了本例配置文件中定义了 3 3 个文本框,设置了个文本框,设置了 3 3 种不同的文字

34、颜色种不同的文字颜色和文字对齐方式,字体大小逐渐增大,运行结果如图和文字对齐方式,字体大小逐渐增大,运行结果如图 2.11 2.11 所示。所示。本例配置文件中定义了本例配置文件中定义了 4 4 种按不同的属性值显示的超长文本,第种按不同的属性值显示的超长文本,第 1 1 个文个文本框指定在文字起始处显示省略号,第本框指定在文字起始处显示省略号,第 2 2 个文本框指定在文字的中间显示省略个文本框指定在文字的中间显示省略号,第号,第 3 3 个文本框指定在文字的结尾处显示省略号,第个文本框指定在文字的结尾处显示省略号,第 4 4 个文本框指定文字个文本框指定文字滚动显示。另外设置了属性滚动显示

35、。另外设置了属性 android:singleLine=true android:singleLine=true,控制文本单行显示,控制文本单行显示,否则超长的文本会自动换行显示。运行结果如图否则超长的文本会自动换行显示。运行结果如图 2.12 2.12 所示。所示。本例配置文件分别定义了本例配置文件分别定义了 3 3 个文本个文本框,分别将其中的网址、邮箱地址、电话框,分别将其中的网址、邮箱地址、电话号码转化为可以单击的超链接,运行结果号码转化为可以单击的超链接,运行结果如图如图 2.13 2.13 所示。所示。2.3.2 2.3.2 按钮按钮 按钮通过按钮通过 Button Button

36、控件实现,控件实现,Button Button 类继承自类继承自 TextView TextView,它可以供用户单,它可以供用户单击,当用户单击之后,就会触发一个击,当用户单击之后,就会触发一个 onClick onClick 事件,可以通过监听事件,可以通过监听 onClick onClick 事事件做一些自定义的处理。图件做一些自定义的处理。图 2.1 2.1 所示的手机所示的手机 QQ QQ 登录界面的登录界面的“登录登录”按钮就是一按钮就是一个个 Button Button 控件。控件。下面我们通过一个实例介绍一下下面我们通过一个实例介绍一下 Button Button 的使用,运行

37、结果如图的使用,运行结果如图 2.14 2.14 所示,左图是初始显示,右图是单击所示,左图是初始显示,右图是单击“切换切换”按钮后的显示。按钮后的显示。p 案例分析案例分析 本例配置文件中定义了一个本例配置文件中定义了一个 TextView TextView 和和 Button Button,可以看到,可以看到,Button Button 控件的属性设置和控件的属性设置和 TextView TextView一致。一致。在在 Activity Activity 代码中,首先通过代码中,首先通过 findViewById()findViewById()方法获取了方法获取了 Button Butt

38、on 控件,然后为控件,然后为 Button Button 控件设置了一个监听事件,监听用户的单击操作。当用控件设置了一个监听事件,监听用户的单击操作。当用户进行单击后,对界面文本框中的文字进行判断,切换户进行单击后,对界面文本框中的文字进行判断,切换“Hello”“Hello”和和“World”“World”的显示。的显示。2.3.3 2.3.3 单选按钮和复选框单选按钮和复选框 在有些界面中,信息并不一定完全需要用户输入,可以提供一组信息让在有些界面中,信息并不一定完全需要用户输入,可以提供一组信息让用户进行选择,这可以通过单选按钮和复选框实现。单选按钮和复选框分别用户进行选择,这可以通过

39、单选按钮和复选框实现。单选按钮和复选框分别通过通过 RadioButton RadioButton 和和 CheckBox CheckBox 实现,两者都继承自实现,两者都继承自ButtonButton,因此它们可,因此它们可以使用以使用 Button Button 控件的属性和方法。相比于普通的按钮,它们多了一个控件的属性和方法。相比于普通的按钮,它们多了一个“选选中中”的概念。的概念。下面我们通过一个实例介绍一下单选按钮和复选框的用法,运行结下面我们通过一个实例介绍一下单选按钮和复选框的用法,运行结果如图果如图 2.15 2.15 所示。所示。p 案例分析案例分析 本例配置文件首先定义了一

40、个本例配置文件首先定义了一个 RadioGroup RadioGroup 控件,在其中放置控件,在其中放置 RadioButton RadioButton 控件,这样可以保证控件,这样可以保证“男男”和和“女女”两个按钮只被选择两个按钮只被选择一次。接着定义了一个一次。接着定义了一个 LinearLayout LinearLayout 控件,方向为水平布局,在其控件,方向为水平布局,在其中放置了中放置了 3 3 个复选框。个复选框。在在 Activity Activity 中,分别获取了单选框和复选框控件,然后为其设中,分别获取了单选框和复选框控件,然后为其设置监听事件,并获取相应的信息。置监

41、听事件,并获取相应的信息。2.3.4 2.3.4 图片控件图片控件 图片控件通过图片控件通过 ImageView ImageView 实现,它主要用于显示图片。实现,它主要用于显示图片。ImageView ImageView 的的使用方法也比较简单,表使用方法也比较简单,表 2.5 2.5列出了列出了 ImageView ImageView 一些常见的属性。一些常见的属性。其中,其中,android:scaleType android:scaleType 的取值如表的取值如表 2.6 2.6 所示。所示。定义定义 ImageView ImageView 控件的大小为控件的大小为 200dp 2

42、00dp200dp200dp,分别选取两张图片进,分别选取两张图片进行展示。图行展示。图 2.16 2.16 所示的是待展示的图片,左边图片大于所示的是待展示的图片,左边图片大于 ImageView ImageView 控件控件的大小,右边图片小于的大小,右边图片小于 ImageView ImageView 控件的大小。控件的大小。图图 2.17 2.17 所示为所示为 ImageView ImageView 的展示效果,为了对比图片在的展示效果,为了对比图片在 ImageView ImageView 中的位置,我们将中的位置,我们将 ImageView ImageView 的背景颜色设置为蓝

43、色。的背景颜色设置为蓝色。2.3.5 2.3.5 进度条和拖动条进度条和拖动条 在在 Android Android 应用中,我们经常会用到进度条和拖动条。进度条可以用应用中,我们经常会用到进度条和拖动条。进度条可以用来显示当前操作的进度,拖动条在进度条的基础上做了扩展,允许用户随意来显示当前操作的进度,拖动条在进度条的基础上做了扩展,允许用户随意拖动当前的进度,例如在音乐或视频播放器中,用户可以拖动滑块实现快进拖动当前的进度,例如在音乐或视频播放器中,用户可以拖动滑块实现快进或快退。进度条通过或快退。进度条通过ProgressBar ProgressBar 实现,拖动条通过实现,拖动条通过

44、SeekBar SeekBar 实现。实现。表表 2.7 2.7 说明了说明了 ProgressBar ProgressBar 一些常见的属性。一些常见的属性。本例在本例在 XML XML 配置文件中定义了一个配置文件中定义了一个 progressBar progressBar 对象,设置进度对象,设置进度条的样式为水平显示,进度条的最大值设置为条的样式为水平显示,进度条的最大值设置为 100 100,然后在,然后在 Activity Activity 中获取中获取 ProgressBar ProgressBar 控件,每隔控件,每隔 1s 1s 调用调用 setProgress()setPr

45、ogress()函数刷新一函数刷新一次进度显示,运行结果如图次进度显示,运行结果如图 2.18 2.18 所示。所示。SeekBar SeekBar 和进度条类似,只不过多了一和进度条类似,只不过多了一个滑动块可供用户拖动,个滑动块可供用户拖动,SeekBar SeekBar 可以通过可以通过属性属性 android:thumb android:thumb来改变滑块的显示。下来改变滑块的显示。下面我们通过一个实例说明一下面我们通过一个实例说明一下 SeekBar SeekBar 的使的使用方法,运行结果如图用方法,运行结果如图 2.19 2.19 所示。所示。p 案例分析案例分析 从配置文件中

46、可以看到,拖动条的配置与进度条类似。在从配置文件中可以看到,拖动条的配置与进度条类似。在 Activity Activity 中,中,需要调用需要调用setOnSeekBarChangeListener()setOnSeekBarChangeListener()为拖动条设置监听事件,当有拖动为拖动条设置监听事件,当有拖动事件产生时,系统会回调当前拖动的进度,可以在事件产生时,系统会回调当前拖动的进度,可以在 onProgressChanged()onProgressChanged()方方法中获取当前进度并做相应的处理。法中获取当前进度并做相应的处理。2.4 对话框 对话框也是一种比较常见的用于

47、交互的控件,是提示用户做出决定或对话框也是一种比较常见的用于交互的控件,是提示用户做出决定或者输入额外信息的窗口,一般不会填充整个屏幕,需要用户采取进一步操者输入额外信息的窗口,一般不会填充整个屏幕,需要用户采取进一步操作之后才能继续执行。作之后才能继续执行。Android Android 中对话框的基类是中对话框的基类是 Dialog Dialog,一般使用其,一般使用其子类子类 AlertDialog AlertDialog、ProgressDialog ProgressDialog 等。其中,等。其中,AlertDialog AlertDialog 功能最功能最丰富,应用最广泛。丰富,应

48、用最广泛。2.4.1 2.4.1 简单对话框简单对话框 AlertDialog AlertDialog 提供了一些方法用于生成带消息和操作按钮的对话框,对话框提供了一些方法用于生成带消息和操作按钮的对话框,对话框的内容还可以是列表或者是自定义的的内容还可以是列表或者是自定义的 View View。对话框可通过。对话框可通过 AlertDialog.Builder AlertDialog.Builder 进行一些设置,进行一些设置,AlertDialog.Builder AlertDialog.Builder 类支持的方法如表类支持的方法如表 2.8 2.8 所示。所示。本例是在本例是在 Act

49、ivity Activity 中显示一个按钮,中显示一个按钮,单击按钮之后,使用单击按钮之后,使用 AlertDialog.Builder AlertDialog.Builder 创建一个对话框并显示。对话框设置了标题、创建一个对话框并显示。对话框设置了标题、消息和两个按钮,运行结果如图消息和两个按钮,运行结果如图 2.20 2.20 所示。所示。2.4.2 2.4.2 列表对话框列表对话框 AlertDialog AlertDialog 除了可以创建简单的对话框之外,还可以创建列表对话除了可以创建简单的对话框之外,还可以创建列表对话框,调用框,调用 AlertDialog.Builder A

50、lertDialog.Builder对应的对应的 setXXXItems()setXXXItems()方法可以创建简单方法可以创建简单的列表、带有单选按钮的列表、带有多选框的列表。的列表、带有单选按钮的列表、带有多选框的列表。下面我们以带有多选框的列表内容为例,创建一个列表对话框,运行下面我们以带有多选框的列表内容为例,创建一个列表对话框,运行结果如图结果如图 2.21 2.21 所示。所示。p 案例分析案例分析 本例在本例在 Activity Activity 中显示了一个按钮,单击按钮之后,创建了一个支持中显示了一个按钮,单击按钮之后,创建了一个支持多选的列表对话框。多选的列表对话框。创建

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(Android移动开发基础教程第2章-Android界面开发课件.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|