2024年4月18日发(作者:)

第三章 Android高级界面组件

一、学情分析

第二章讲解了Android界面开发基础控件,学生对自身开发界面不够美观,缺少常用控件比如图片、

列表、对话框等,本章相对于上一章难度增加,需要情境引入引导学生学习。

二、教学内容分析

Android程序开发最重要的一个环节就是界面处理,界面的美观度直接影响用户的第一印象,因此,

开发一个整齐、美观的界面是至关重要的,在第二章讲解了Android基础界面控件并不能完全实现整齐

美观的界面,需要进阶学习Android高级界面控件。

重点讲解图片控件、列表控件、对话框、菜单。

图片控件包括ImageView、ImageButton、ImageSwitcher.

列表控件包括Spinner、ListView、GridView、RecyclerView、ExpandableListView.

对话框包括AlertDialog。

菜单包括选项菜单和上下文菜单。

三、教学目标

知识目标:

(1) 图片控件(ImageView、ImageButton、ImageSwitcher)

(2) 列表控件(Spinner、LIstView、ExpandableListView)

(3) 对话框(Dialog)

能力目标:

(1)

掌握 Android 中常见高级视图和高级组件的使用,能够利用各高级组件实现生活中常见的具

体实例,如图片浏览器、图片的处理、QQ 界面等

四、教学重点

(1)

(2)

(3)

(4)

图片视图 ImageView 的各属性值的作用

图像切换器 ImageSwitcher 的使用方法

画廊视图 Gallery 的使用方法

ExpandableListView 扩展下拉列表的使用方法

(5)

MenuTest 实例,实现选项菜单、上下文菜单及子菜单的功能

五、教学难点

(1) 图像切换器 ImageSwitcher 使用时 ViewFactory 的设定

(2)

ListView 下拉列表使用时 List 集合的创建

六、教学过程

1

第一部分 Android基础界面控件

一、 回顾上节课知识,继续讲解Android基础界面控件

(1)对上节课留的知识进行答疑

(2)进入本节课本节课主题,讲解Android高级界面控件图片控件

Android界面美观离不开图片控件,ImageView是视图控件,它继承自View,其功能是在屏幕中

显示图像。常见基本图片控件ImageView,ImageButton,ImageSwicher。

(3)明确学习目标

熟练掌握ImageView,ImageButton,ImageSwicher的用法。

二、重点知识讲解

(1)老师创建情境,引入ImageView组件。

① 演示显示图片项目,提出问题Android界面如何呈现一张图片?图片在项目中放在哪里?

② 图片存放在drawable文件夹

③ android:src属性指定图片来源,值为@drawable/***。

④ 分析android:scaleType属性

⑤ 老师操作演示android:scaleType显示效果

(2)ImageButton图片按钮

① 分析图片按钮。

② 提出问题:如果想要在按钮上达到既有图片又有文字的效果,应该怎么做呢?让学生讨论。

③ 分析ImageButton中src和background的区别。

④ 在XML文件中采用selector标签,定义自定义图片。

⑤ 老师操作演示使3种不同方式实现图片监听

⑥ 提出问题图片控件灰色背景如何去掉白色?

⑦ 分析讲解颜色值的表示方法:#ARGB、#AARRGGBB、#RGB、#RRGGBB

(3)图片切换器ImageSwitcher

① 演示项目图片切换项目。

② 分析 ImageSwitcher实现图片实现原理。

③ 老师操作演示ImageSwitcher图片切换器

2

(4)项目完成演示。

老师引导学生分析“竞赛登陆”布局、控件摆放、涉及控件属性等

(4)上机训练。ImageView、ImageButton、ImageSwitcher案例项目。

(5)学生掌握检查。

1.ImageView控件的android:scaleType属性,设置所显示的图片如何缩放或移动以适应ImageView的

大小,以下哪个值能保持纵横比缩放图片,直到该图片能完全显示在ImageView中( )。

A)fitXY B)fitCenter C)center D)centerCrop

2.假设某张图片的大小为1200*1200,现将其显示在一个300*200的ImageView上,如果设置scaleType

属性的值为fitCenter,则图片的缩放比例为( )。

A)等比例缩放,缩放比例为4

B)横轴缩放比例为4,纵轴缩放比列为6

C)横轴缩放比列为6,纵轴缩放比例为4

D)等比例缩放,缩放比例为6

(6)作业布置

完成简易登陆页面,如下图所示。

第二部分 列表控件

一、回顾上节课内容、继续讲解布局管理器

(1)对上节课留的知识进行答疑

(2)进入本节课本节课主题,讲解列表控件

3

在Android开发中ListView是一个比较常用的控件,它以列表的形式展示具体数据内容,当数据

过多时会出现滚动条,并且能够根据数据的长度自适应屏幕显示。

(3)明确学习目标

熟练掌握列表控件Spinner、ListView、GridView、RecyclerView、ExpandableListView。

二、进入重点知识点讲解老师演示实现

(1)Spinner下拉列表

Android列表实现一般步骤理论知识,学生一开始不能接受,先从简单案例入手,实现Spinner、

ListView列表,逐渐理解归纳列表一般实现步骤。

使用2中方式实现Spinner列表

1、在代码中通过数组或集合进行定义;

2、在XML文件中通过标签指定,然后在布局文件中,为其添加android:entries属性,

指定数据源。

(2)ListView列表控件

在Android开发中ListView是一个比较常用的控件,以垂直列表的形式显示所有的列表项数据,

当数据过多时会出现滚动条,并且能够根据数据的长度自适应屏幕显示。

实现ListView效果的两种方式:

1、在布局文件中添加一个ListView,然后为ListView设置需要显示的内容(Adapter);

2、让当前的Activity直接继承ListActivity,然后通过ListActivity的setListAdapter()方法设置需要

显示的内容。

4

(3)适配器

老师引导,前面小节提到过在使用ListView控件时需要进行数据适配,这样界面才会显示数据。

在进行数据适配时会用到数据适配器,所谓的适配器就是数据与视图之间的桥梁,它就类似于一个转

换器,将复杂的数据转换成用户可以接受的方式进行呈现。

列表控件Adapter对象

数据源

构造方法

传值

setAdapter()

方法传值

在Android系统中提供了多种适配器(Adapter)对ListView进行数据适配,接下来介绍下几种常

用的Adapter。

1.BaseAdapter

BaseAdapter顾名思义即基本的适配器。它实际上就是一个抽象类,通常在使用自定义适配器时需

要继承BaseAdapter,该类拥有四个抽象方法。在Android开发中,就是根据这几个抽象方法来对ListView

进行数据适配的。

根据教材内容向学生讲解BaseAdapter中的四个抽象方法。

2.SimpleAdapter

SimpleAdapter继承自BaseAdapter,实现了BaseAdapter的四个抽象方法并进行了封装。因此在使

用SimpleAdapter进行数据适配时,只需要在构造方法里传入相应的参数即可,SimpleAdapter的构造

方法如下所示:

public SimpleAdapter(Context context, List> data,

int resource, String[] from, int[] to);

根据教材内容向学生讲解SimpleAdapter方法中的各个参数的含义。

3.ArrayAdapter

ArrayAdapter也是BaseAdapter的子类,用法与SimpleAdapter类似,开发者只需要在构造方法里

面传入相应参数即可。ArrayAdapter通常用于适配TextView控件,例如Android系统中的Setting(设

置菜单)。

ArrayAdapter有多个构造方法,根据教材内容对ArrayAdapter的构造方法以及各个构造方法中的

参数进行详细的讲解。

(4)网格列表GridView

结合前面讲解表格布局分析网格列表,并掌握关键属性android:numColumns,

android:horizontalSpacing,android:verticalSpacing。

教师演示实现网格列表项目。

5

(4)扩展下拉列表ExpandableListView

① 分析BaseExpandableListAdapter适配器中抽象方法

② 介绍SimpleExpandableListAdapter的参数

③ 使用SimpleExpandableListAdapter实现简单扩展列表

④ 使用自定义adapter,重写BaseAdapter中4个抽象方法,实现仿QQ分组列表。

6

(5)上机训练

上机完成Spinner、ListView、GridView、RecyclerView、ExpandableListView。

(6)知识检测

1.为下拉列表自定义Adapter即写一个类继承自BaseAdapter时,必须重写父类中的一些方法,以下

哪个方法不是必须的。( )

A)getCount() B)getView() C)getItem() D)getDropDownView

2.Android中包含了很多Adapter相关类,下列选项中,哪一个类不是从BaseAdapter继承而来的是

( )。

A)ArrayAdapter B)SimpleAdapter C)CursorAdapter D)PagerAdapter

3.以下关于SimpleAdapter构造方法中参数的描述不正确的是( )。

A)第一个参数为Context上下文对象,通常只需要传入当前的Activity对象即可。

B)第二个参数为列表的数据来源,既可以是一个数组,也可以是一个集合。

C)第三个参数为列表中每一项的布局文件,该布局中可以包含多个控件。

D)第四个参数与第五个参数之间存在一一对应的关系,根据第四个参数获取的数据,将会在第五个

参数所指定的控件中显示,并且第五个参数中的元素,必须在第三个参数指定的布局文件中。

(7)作业

任务:使用自定义Adapter实现下面列表。

第三部分 对话框

一、回顾上节课内容、继续讲解布局管理器

(1)对上节课留的知识进行答疑

(2)进入本节课本节课主题,继续讲解对话框。

Android UI界面中与用户交互,就离不开对话框,对话框有多种,其中最常见的是警告框。

(3)明确学习目标

熟练掌握警告框。

7

二、进入重点知识点讲解老师演示实现

(1)对话框

教师引导,大家知道什么是对话框?学生回答之后,老师解释。在Android界面中,除了菜单之

外,对话框也是程序与用户交互的一种方式,通常用于显示当前程序提示信息以及相关说明。对话框

一般以小窗口的形式展示在Activity之上,当对话框显示时,处在下层的Activity失去焦点,对话框

便可以接收用户的交互信息。

Android中,主要的对话框有以下四种:

AlertDialog、ProgressDialog、DatePickerDialog、TimePickerDialog。

(2)警告框实现一般步骤

实例化AlertDialog类往往需依靠其内部类:r完成。使用AlertDialog创建对话

框大致按如下步骤进行。

第1步:创建r对象,该对象是AlertDialog的创建器。

第2步:调用r方法为对话框设置图标、标题、内容等。

第3步:调用r的create()方法创建AlertDialog对话框

第4步:调用AlertDialog的show()方法显示对话框。

Builder内部类的主要方法介绍。

(3)简单提示对话框

在普通对话框(Dialog)中,一般只会显示提示信息,并通常具有确定和取消按钮。

老师根据教材和PPT向学生讲述对话框的相关方法,接着给出实现对话框代码,并对代码进行详

细讲解。

(4)单选对话框

教师引导,讲述单选对话框作用。单选对话框和RadioButton作用类似,只能选择一个选项,它是

通过AlertDialog对象调用setSingleChoiceItems()方法创建的。

老师根据教材和PPT给出代码对单选对话框进行详解,并向学生演示效果图,要求学生熟练掌握。

8

(5)多选对话框

教师引导,多选对话框通常在需要勾选多种选项时使用,例如添加旅游、购物、温煦等。创建多

选对话框与创建单选对话框类似,调用setMultiChoiceItems()方法就可实现。

老师根据教材和PPT给出代码进行详解,并向学生演示效果图,要求学生熟练掌握。

(6)自定义对话框

教师引导,按照对话框实现一般步骤,在builder中添加自定义布局,实现输入账号和密码。

老师根据教材和PPT给出代码进行详解,并向学生演示效果图,要求学生熟练掌握。

(6)时间对话框和日期对话框

通过new关键字创建DatePickerDialog、TimePickerDialog实例,调用它们的show()方法即可显示对

话框。

9

(7)上机训练

完成警告框、时间对话框、日期对话框案例实验。

(8)知识检测

⚫ 对Builder对象方法返回类型的理解。

⚫ 当程序中存在两个名称相同,包不同的类或接口时,应该怎么办?

⚫ 对话框中包含三种类型的按钮,能否重复添加?按钮有什么作用?

⚫ 如何解决单击Back建退出对话框的问题?

⚫ 默认情况下,只有列表项,没有按钮时,选择后并不能退出对话框。该如何处理?

(9)作业

完成如下图自定义对话框?

第四部分 菜单

一、回顾上节课内容、继续讲解布局管理器

(1)对上节课留的知识进行答疑

(2)进入本节课本节课主题,继续讲解菜单

在桌面程序中,菜单使用十分广泛,但是在Android应用程序中使用的并不多。不过Android中提

供两种实现菜单的方法。分别项菜单(Option Menu)和上下文菜单(Context Menu)。

(3)明确学习目标

熟练掌握选项菜单和上下文菜单。

二、进入重点知识点讲解老师演示实现

(1)选项菜单

Android3.0以后,菜单项将显示在操作栏(ActionBar)上。默认情况下,系统会把所有菜单项都

隐藏,只在操作栏上显示一个图标。用户可以通过操作栏右侧的溢出图标或者是单击菜单按钮(前提

是有菜单按钮)来显示菜单项。

菜单项显示在操作栏上

10

实现选项菜单有两种方式:标签实现和Java代码实现。

标签实现常用到的标签有:

标签、标签、标签等

Java代码实现主要用到一个回调方法onOptionsItemSelected(MenuItem item)实现。

(2)上下文菜单

上下文菜单与电脑上的右键快捷菜单非常相似,在Android中,当用户长按某一控件时,会弹出上下

文菜单。

上下文菜单实现步骤分3部:

① 重写Activity的onCreateContextMenu(方法;

② 调用Activity的registerForContextMenu(View view)方法为view组件注册上下文菜单。

③ 重写onContextItemSelected(MenuItem mi)方法。

老师根据教材和PPT向学生讲述对话框的相关方法,接着给出实现对话框代码,并对代码进行详

细讲解。

(3)作业

使用上下文菜单,长按文字弹出如图信息。

11

七、教学评价设计

评价内容

评价项目

课堂表现

回答问题

作业态度

知识掌握

综合评价

学生

姓名

学生自评 生生互评

优 良 中 差 优 良

评价

日期

教师评价

中 差 优 良

12