Android移动终端应用开发(微课版)-课件全套 王莹 模块1-9 校园易App工程创建 -智能农业移动终端管理系统开发实现_第1页
Android移动终端应用开发(微课版)-课件全套 王莹 模块1-9 校园易App工程创建 -智能农业移动终端管理系统开发实现_第2页
Android移动终端应用开发(微课版)-课件全套 王莹 模块1-9 校园易App工程创建 -智能农业移动终端管理系统开发实现_第3页
Android移动终端应用开发(微课版)-课件全套 王莹 模块1-9 校园易App工程创建 -智能农业移动终端管理系统开发实现_第4页
Android移动终端应用开发(微课版)-课件全套 王莹 模块1-9 校园易App工程创建 -智能农业移动终端管理系统开发实现_第5页
已阅读5页,还剩256页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

移动终端应用开发校园易App工程创建ANDROID目录Contents认识Android搭建Android开发环境创建第一个Android项目认识Android生命周期创建Android模拟器教学目标知识目标了解Android发展史及体系结构。掌握Android开发环境的搭建方法。掌握Android工程创建方法。掌握Android项目结构。理解Activity生命周期。掌握Android程序运行、调试方法。技能目标具备Android开发环境的搭建能力。具备Android程序创建和调试能力。素质目标培养自我学习的能力。培养良好的行为习惯。认识Android01PART了解Android发展史Android最初由安迪·鲁宾(AndyRubin)开发,主要支持手机。2005年8月,Android由Google公司收购并注资。2007年11月,Google公司与众多硬件制造商、软件开发商及电信运营商组建了开放手机联盟,一同开发Android。2008年9月,Google公司正式发布了Android1.0,这是Android最早的版本。Android体系结构Android实际上是一个针对多种不同设备类型打造的开放源代码的软件开发堆栈,该软件开发堆栈的搭建采用了分层的框架结构。搭建AndroidStudio开发环境02PART安装AndroidStudioAndroidStudio是Google公司用于开发Android应用的官方集成开发环境(IntegratedDevelopmentEnvironment,IDE),其包含构建Android应用所需的所有功能。同时,AndroidStudio与以往的IDE相比,不仅提供了强大的代码编辑器和开发者工具,还提供了许多可提高Android应用构建效率的功能。AndroidStudio支持采用Java、Kotlin、Flutter等多种语言进行开发,支持在Linux、Windows、macOS等操作系统上运行。安装AndroidStudio1.安装JDKJDK是Java语言的软件开发工具包,在AndroidStudio中,如果想用Java语言开发程序,则必须安装JDK,否则无法创建Java语言开发的Android工程。目标文件夹对话框安装程序对话框安装AndroidStudio2.下载AndroidStudioAndroidStudio支持安装在多种操作系统上,在下载时应选择适合系统类别的超链接,这里选择在Windows操作系统上安装AndroidStudio。AndroidStudio的官方下载页面安装AndroidStudio3.安装AndroidStudio初次安装AndroidStudio时应保持设备处于联网状态,因为在初次安装的过程中,AndroidStudio需要下载与版本匹配的SDK。AndroidStudio安装欢迎窗口选择部件窗口安装AndroidStudio3.安装AndroidStudio初次安装AndroidStudio时应保持设备处于联网状态,因为在初次安装的过程中,AndroidStudio需要下载与版本匹配的SDK。设置安装路径创建启动快捷方式安装AndroidStudio3.安装AndroidStudio初次安装AndroidStudio时应保持设备处于联网状态,因为在初次安装的过程中,AndroidStudio需要下载与版本匹配的SDK。设置完成安装完成安装AndroidStudio4.启动AndroidStudio

(1)双击AndroidStudio的快捷方式,如果之前曾经安装过AndroidStudio,则此时会弹出“ImportAndroidStudioSettings”对话框,一般这里不做修改,单击“OK”按钮即可。如果没有安装过AndroidStudio,则不会弹出该对话框。“ImportAndroidStudioSettings”对话框安装AndroidStudio4.启动AndroidStudio(2)进入“HelpimproveAndroidStudio”对话框,单击“Don’tsend”按钮。(3)AndroidStudio启动后会进入欢迎界面,说明AndroidStudio已经启动。欢迎界面“HelpimproveAndroidStudio”对话框创建Android模拟器03PARTAndroid模拟器Android模拟器(AndroidVirtualDevice,AVD)是一种运行在计算机上的虚拟设备,使用Android模拟器可以模拟各种Android设备,在各个AndroidAPI级别上测试Android应用程序,而无须拥有各实体设备。Android模拟器具有以下优势。(1)灵活性:Android模拟器不仅可以模拟各种设备和AndroidAPI级别,还可以针对各种Android手机、WearOS和AndroidTV设备等提供不同的配置。(2)高还原度:Android模拟器几乎可以提供真正的Android设备所具备的所有功能,可以模拟来电和短信、指定设备的位置、模拟不同的网速、模拟旋转及其他硬件传感器等。(3)速度快:从某些方面来看,在Android模拟器上测试应用程序比在实体设备上测试更快、更容易。例如,将数据传输到Android模拟器上的速度比传输到通过USB连接的设备上更快。创建Android模拟器(1)进入AndroidStudio的欢迎界面,在“MoreActions”下拉列表中选择“VirtualDeviceManager”选项。选择“VirtualDeviceManager”选项创建Android模拟器(2)此时打开的是设备管理器。单击“CreateDevice”按钮或单击“Createvirtualdevice”,即可进入Android模拟器的创建过程。设备管理器创建Android模拟器(3)单击“CreateDevice”按钮后会进行虚拟设备配置。虚拟设备的配置包含硬件配置、系统镜像配置、设备名称等属性配置。当前进行的是硬件配置,这里选择想设置的设备类型和设备型号后,单击“Next”按钮。硬件配置创建Android模拟器(4)选择想安装在虚拟设备上的Android系统镜像。Android系统镜像代表将要在虚拟设备上放置的Android的版本,选择好后单击“Next”按钮,进行下一步操作。系统镜像配置创建Android模拟器(5)进行设备名称等属性配置。可以根据个人需要重新设置设备的名称、设备开机时的屏幕方向等属性。设备名称等属性配置创建Android模拟器(6)创建完成后,可看到新建的Android模拟器。新建的模拟器创建Android模拟器Android模拟器主界面(7)单击按钮,即可打开一个类似手机的Android模拟器。创建第一个Android项目04PART认识Android项目结构AndroidStudio项目结构类型AndroidStudio提供了多种项目结构类型。单击图框线处的下拉按钮,在打开的下拉列表中可以选择对应的项目结构。认识Android项目结构Android项目结构下面介绍Android项目结构。可以看到一个Android工程由多个目录及文件组成,这些目录及文件分别有不同的作用。(1)manifests:用于存放AndroidManifest.xml项目清单文件,包含项目名称、版本、SDK、权限等配置信息。当程序运行时,系统会根据清单中的配置信息打开相应组件。(2)java:用于存放程序中的所有Java源代码。在此目录下可以创建多个不同的包,用来划分不同功能的Java源文件或Activity。(3)res:Android的资源目录。项目中使用到的所有布局、字符串、图片等资源都存放在该目录下。其中有很多子目录,布局放在

layout

目录下,字符串放在values目录下,图片放在drawable目录下,应用程序图标放在mipmap目录下,系统会根据手机屏幕分辨率匹配相应大小的图标。(4)GradleScripts:用于存放项目创建的相关文件。运行Android应用程序运行Android应用程序有两种方法,一种是在真实的Android移动终端中运行,移动终端需要打开开发者模式,同时允许USB调试,将USB数据线插入计算机就可以将Android应用程序直接运行到移动终端中;另一种是通过Android模拟器来运行、调试应用程序创建Android模拟器创建校园易APP项目(1)打开AndroidStudio开发环境,在菜单栏中选择“File”→“New”→“NewProject”选项,此时会进入项目创建界面。创建Activity时有多个模板可供选择,这些模板都在EmptyActivity模板的基础上添加了一些简单的组件。(2)选择“EmptyViewsActivity”选项,单击“Next”按钮,进入项目配置界面。其中,Name是创建的工程的名称;Packagename是工程的包名;Savelocation是工程保存的本地路径;Language为所用的编程语言,这里选择Java;MinimumSDK为最低支持的Android版本,版本越低,兼容性越好。单击“Finish”按钮,完成校园易App工程的创建。项目创建界面项目配置界面认识工程中的文件(1)activity_main.xml是Android的布局文件,用于展示Android项目的界面,可以添加任意按钮、文本框和其他组件,让程序变得更美观、更友好;<?xmlversion="1.0"encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayoutxmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="HelloWorld!"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent"/></androidx.constraintlayout.widget.ConstraintLayout>认识工程中的文件(2)MainActivity.java是Android的Java源文件,用于实现用户与界面的交互功能。packagecom.example.campusassistant;importandroidx.appcompat.app.AppCompatActivity;importandroid.os.Bundle;publicclassMainActivityextendsAppCompatActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}}认识工程中的文件(3)AndroidManifest.xml文件是整个工程的信息描述文件,程序运行所必需的组件、权限,以及一些相关信息都需要在其中进行配置。工程中定义的四大组件都需要在此进行注册,否则会抛出异常信息。<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="/apk/res/android"package="com.example.campusassistant"><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activityandroid:name=".MainActivity"><intent-filter><actionandroid:name="ent.action.MAIN"/><categoryandroid:name="ent.category.LAUNCHER"/></intent-filter></activity></application></manifest>认识Activity生命周期05PARTActivity生命周期五种状态Activity生命周期是指一个Activity从创建到销毁的全过程。Android对Activity的管理通过栈实现。栈的特点是先进后出、后进先出。栈中保存的就是一个个启动的Activity,先启动的窗口先进栈,打开的第二个窗口会将第一个窗口向下压,第一个窗口虽然被遮挡,但仍在内存中驻留。由此可以将Activity生命周期分为五种状态,分别是启动状态、运行状态、暂停状态、停止状态和销毁状态。Activity生命周期的五种状态Activity生命周期回调方法Activity生命周期涉及七个回调方法。Activity生命周期模型Activity生命周期回调方法【案例1-1】Activity生命周期。在Android中新建一个ActivityLife工程,在MainActivity类中重写Activity生命周期的七个回调方法,并在每个方法中添加日志,观察调用情况。初次启动Activity掌握程序调试方法Android初学者常常会被一些问题困扰,以致在调试程序时无从下手。为了更快更好地编写程序,开发者需要了解AndroidStudio在提升调试速度方面的一些技巧。(1)Logcat调试在使用Logcat调试的过程中,输出日志信息可能包含许多人们并不关心的内容,如日期、线程ID、包名等。此时,可以单击Logcat工具栏中的LogcatHeader设置图标,在弹出的“ConfigureLogcatHeader”对话框中可以取消显示那些可忽略的信息。“ConfigureLogcatHeader”对话框掌握程序调试方法(2)Toast调试Toast是AndroidStudio中的一个视图,用来快速显示少量信息。在程序运行时,该信息会弹出并显示在屏幕上。【案例1-2】实现校园易App欢迎界面。新建工程CampusAssistant并添加一个Toast,用来显示“WelcometoCampusAssistantApp!”,只需要改动MainActivity的代码,布局代码不变。Toast运行效果模块小结本模块主要讲解了Android的基础知识,首先介绍了Android的发展史和体系结构;其次讲解了AndroidStudio开发环境的搭建方法,以及如何创建Android模拟器;再次讲解了Android项目结构、运行Android应用程序及创建Android项目;最后讲解了Activity的生命周期,其是Activity在运行过程中所处状态的集合,在Activity不同的阶段会有不同的生命周期回调方法,可以在Activity类中重写这些方法,以做到在不同的生命周期中实现不同的行为。本模块包含Android开发的入门知识,读者需要熟练掌握这些知识,为后续的学习打下良好的基础。演示结束.

感谢聆听Android移动终端应用开发ANDROID校园易App用户登录功能实现目录Contents设计用户登陆页面学习Android常用组件实现校园易APP登陆功能教学目标知识目标熟悉AndroidStudio常用布局。掌握AndroidStudio约束布局。掌握Android的TextView、EditText、Button、ImageView等组件的属性和操作方法。技能目标能够设计Android应用程序界面。能够实现Android应用程序用户登录功能。素质目标培养自主学习和终身学习的能力。培养批判性

思维。培养工程化思维与问题解决能力设计用户登陆页面01PARTAndroid常用布局Android提供了五种常用布局,分别为相对布局、线性布局、帧布局、表格布局和网格布局。1.相对布局相对布局是一种以父容器和兄弟组件为参照来确定组件位置的布局方式。例如,在图所示的相对布局中,首先放置组件A;然后放置组件B,让其位于组件A的下方;最后放置组件C,让其位于组件A的下方,并位于组件B的右侧。相对布局Android常用布局2.线性布局线性布局是将放入其中的组件按照垂直或水平方向来布局,即控制放入其中的组件横向排列或纵向排列。其中,纵向排列的布局称为垂直线性布局;横向排列的布局称为水平线性布局,垂直线性布局水平线性布局Android常用布局3.帧布局在帧布局中,每加入一个组件,都将创建一个空白的区域,该空白的区域通常称为一帧,这些帧都会被放置在屏幕的左上角,即帧布局是从屏幕的左上角(0,0)坐标点开始布局的。帧布局Android常用布局4.表格布局表格布局与常见的表格类似,其以行、列的形式来管理放入其中的组件。表格布局使用<TableLayout>标签(表格布局管理器)定义。在表格布局管理器中可以添加多个<TableRow

>标签,每个<TableRow>标签占用一行;由于<TableRow>标签也是容器,因此在该标签中还可添加其他组件。表格布局Android常用布局5.网格布局网格布局是在Android4.0中提出的,其使用<GridLayout>标签定义。在网格布局中,屏幕被虚拟的细线划分为行、列和单元格,每个单元格中放置一个组件,且该组件可以跨行或跨列摆放。网格布局Android约束布局约束布局具有相对布局的能力,是一种以父容器和兄弟组件为参照来确定组件位置的布局方式,可以将一个组件相对于另一个组件的位置来放置。当布局嵌套过多时会出现一些性能问题,之前可以通过相对布局或者网格布局来减少这种布局嵌套的问题,现在可以改用约束布局来减少布局的层级结构,还可以按照比例约束控制位置和尺寸,从而更好地适配屏幕大小不同的机型。约束布局相对父容器定位1.相对定位约束布局相对兄弟组件定位Android约束布局XML属性描述app:layout_constraintTop_toTopOf将所需视图的顶部与另一个视图的顶部对齐app:layout_constraintTop_toBottomOf将所需视图的顶部与另一个视图的底部对齐app:layout_constraintBottom_toTopOf将所需视图的底部与另一个视图的顶部对齐app:layout_constraintBottom_toBottomOf将所需视图的底部与另一个视图的底部对齐app:layout_constraintLeft_toLeftOf将所需视图的左边与另一个视图的左边对齐app:layout_constraintLeft_toRightOf将所需视图的左边与另一个视图的右边对齐app:layout_constraintRight_toLeftOf将所需视图的右边与另一个视图的左边对齐app:layout_constraintRight_toRightOf将所需视图的右边与另一个视图的右边对齐app:layout_constraintBaseline_toBaselineOf当两个视图的高度不一致,但是希望它们文本对齐时,可以使用该属性相对定位的常用XML属性Android约束布局约束布局的边距的常用XML属性XML属性描述android:layout_marginStart设置开始位置的距离android:layout_marginEnd设置结束位置的距离android:layout_marginLeft设置左外边距android:layout_marginTop设置顶外边距android:layout_marginRight设置右外边距android:layout_marginBottom设置底外边距学习Android常用组件02PART学习TextView组件在Android中,TextView是文本显示组件,用于在屏幕上显示文本信息,起提示和说明的作用。TextView组件可以显示单行文本,也可以显示多行文本,还可以显示带图像的文本。在XML布局文件中添加文本框的基本语法格式如下。<TextView

属性列表

/>学习TextView组件XML属性描述android:autoLink指定是否将指定格式的文本转换为可单击的超链接,其属性值有none、web、email、phone、map和allandroid:drawableBottom在文本框内文本的底端绘制指定图像,该图像可以是放在res/drawable目录下的图片,通过“@drawable/文件名(不包括文件的扩展名)”设置android:drawableLeft在文本框内文本的左侧绘制指定图像,该图像可以是放在res/drawable目录下的图片,通过“@drawable/文件名(不包括文件的扩展名)”设置android:drawableRight在文本框内文本的右侧绘制指定图像,该图像可以是放在res/drawable目录下的图片,通过“@drawable/文件名(不包括文件的扩展名)”设置android:drawableTop在文本框内文本的顶端绘制指定图像,该图像可以是放在res/drawable目录下的图片,通过“@drawable/文件名(不包括文件的扩展名)”设置android:gravity设置文本框内文本的对齐方式,其属性值有top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical和clip_horizontal等。这些属性值可以同时指定,各属性值之间用“|”隔开。例如,要指定组件靠右下角对齐,可以使用属性值right|bottomandroid:hint设置当文本框中文本内容为空时,默认显示的提示文本android:inputType指定当前文本框显示内容的文本类型,其属性值有textPassword、textEmailAddress、phone和date等。这些属性值可以同时指定,使用“|”隔开android:singleLine指定该文本框是否为单行模式,其属性值为true或false。该属性值为true时表示该文本框不会换行,当文本框中的文本超过一行时,其超出的部分将被省略,同时在结尾处添加“…”android:text指定该文本框中显示的文本内容,可以直接在该属性值中指定,也可以通过在strings.xml文件中定义文本常量的方式指定android:textColor设置文本框内文本的颜色,其属性值可以是#rgb、#argb、#rrggbb或#aarrggbb格式指定的颜色值android:textSize设置文本框内文本的字体大小,其属性值由代表大小的数值加上单位组成,单位可以是dp、px、pt、sp和in等TextView支持的常用XML属性学习TextView组件【案例2-1】更改TextView组件的显示文本信息为“姓名+学号”。(1)方法一:在约束布局中添加TextView组件,布局代码如下。(2)方法二:在布局页面中添加TextView组件后,打开资源目录res/values下的strings.xml文件(此文件为Android中XML文件的变量定义文件),在其中添加一个名称为txStr的字符串变量,变量值为“22517101刘杨”。(3)方法三:在布局页面中添加TextView组件后,通过更改Java代码来更改TextView的显示文本。

运行结果学习EidtText组件Android中提供了TextView和EditText这两个文本类组件,分别用于在屏幕上显示和输入文本信息。其中,EditText是TextView类的子类,TextView用来显示文本信息。EditText可以用来输入单行文本和多行文本,还可以用来输入指定格式的文本(密码、E-mail、电话号码等)。在XML布局中添加编辑框的基本语法格式如下。<EditTextandroid:id="@+id/editText"android:layout_width="wrap_content"android:layout_height="wrap_content"android:inputType="text"android:text="EditText"/>学习Button组件Button和ImageButton是Android提供的两种按钮组件,其中Button是普通的按钮组件,ImageButton是图片按钮组件。它们都可以在界面上产生一个按钮以响应用户的点击操作,触发一个onClick事件。<Buttonandroid:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Button"/>要想知道用户点击按钮的动作,需要在Java代码中进行操作。利用id属性找到添加的按钮组件。Buttonbtn=findViewById(R.id.button);为按钮组件添加点击事件监听器OnClickListener(),时刻监控用户的操作。一旦有点击操作,Android就会自动捕捉并调用监听器的onClick()方法,实现对用户点击操作的处理。btn.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){//用户点击按钮后的操作}});学习Button组件【案例2-2】川剧变脸小游戏。在AndroidStudio中创建一个ChangeFace工程,添加一个按钮使其显示川剧脸谱,每当用户点击后切换到下一张脸谱。川剧变脸小游戏效果学习ImageView组件ImageView组件表示图片视图,用于在屏幕中显示图片对象。在使用时,需要将图片放置在res/drawable目录下,并应用<ImageView>标签将其显示在布局管理器中。其基本语法格式如下。<ImageView

属性列表></ImageView>XML属性描述android:adjustViewBounds设置ImageView是否调整自己的边界来保持所显示图片的长宽比android:maxHeight设置ImageView的最大高度,需要设置android:adjustViewBounds属性值为true,否则该属性不起作用android:maxWidth设置ImageView的最大宽度,需要设置android:adjustViewBounds属性值为true,否则该属性不起作用ImageView支持的常用XML属性android:scaleType设置所显示的图片如何缩放或移动以适应ImageView的大小,其属性值可以是matrix(使用matrix方式进行缩放)、fitXY(对图片横向、纵向独立缩放,使得该图片完全适应于该ImageView,图片的纵横比可能会改变)、fitStart(保持纵横比缩放图片,直至该图片能完全显示在ImageView中,缩放完成后该图片放在ImageView的左上角)、fitCenter(保持纵横比缩放图片,直至该图片能完全显示在ImageView中,缩放完成后该图片放在ImageView的中央)、fitEnd(保持纵横比缩放图片,直至该图片能完全显示在ImageView中,缩放完成后该图片放在ImageView的右下角)、center(把图像放在ImageView的中间,但不进行任何缩放)、centerCrop(保持纵横比缩放图片,以使图片能完全覆盖ImageView)或centerInside(保持纵横比缩放图片,以使ImageView能完全显示该图片)android:src设置ImageView所显示的Drawable对象的id属性值。例如,要想显示保存在res/drawable目录下的名称为flower.jpg的图片,可以设置android:src="@drawable/flower"android:tint为图片着色,其属性值可以是#rgb、#argb、#rrggbb或#aarrggbb表示的颜色值实现校园易APP登陆功能03PARTAndroid模拟器本任务在AndroidStudio中创建Android项目,名称为CampusAssistant,实现校园易App的登录功能。校园易App登录成功效果模块小结本模块首先介绍了AndroidStudio中的常用布局和约束布局;然后详细介绍了Android中的常用组件,包括TextView组件、EditText组件、Button组件、ImageView组件等;最后实现了校园易App的用户登录功能。读者需要重点掌握Android开发的步骤和方法、点击事件监听器的使用方法等。演示结束.

感谢聆听Android移动终端应用开发校园易App高级功能实现ANDROID目录Contents实现校园易系统主窗体实现校园易新增代办事项实现班级通告信息浏览实现班级照片浏览功能实现触摸事件教学目标知识目标理解Android适配器的概念。掌握Android高级组件GridView的用法。掌握Android高级组件Spinner的用法。掌握Android高级组件ListView的用法。了解Android高级组件RecyclerView的用法。了解Android触摸事件处理机制。技能目标具备Android高级组件开发能力。素质目标培养独立思考能力。培养创造性思维。实现校园易系统主窗体01PART认识适配器在Android界面开发过程中,经常需要使用列表视图(ListView)、缩略图浏览器(Gallery)、网格(GridView)、下拉列表(Spinner)、自动提示文本框(AutoCompleteTextView)等组件进行数据的展示。然而,Activity中的数据无法直接传递给这类组件,要将数据在组件上进行显示,必须借助适配器(Adapter)来完成。适配器是连接组件与数据源的“桥梁”,用来将数据绑定到组件上。适配器的工作流程认识适配器默认情况下,Android提供了以下几种常见的适配器,开发时可以针对数据源的不同采用合适的适配器,也可以自定义适配器来完成复杂功能。(1)ArrayAdapter:支持绑定任意对象数组到列表中的数据适配器,主要用于纯文本数据的显示。(2)SimpleAdapter:数据源结构比较复杂,一般为List<Map>类型对象,用于显示文字和图片等复杂信息列表。(3)SimpleCursorAdapter:游标适配器,数据源一般为数据库中的数据。(4)BaseAdapter:以上适配器的公共基类,可以实现以上适配器的所有功能,且可以自定义适配器来定制每个条目的外观和功能,使用方法更加灵活。BaseAdapter的数据源不定(由用户自行指定),需要继承BaseAdapter抽象类。学习GridView组件1.GridView组件的概念GridView组件按照行列的网格方式来显示多个组件,其每一个网格中可以显示多个组件,与矩阵类似。当屏幕上有很多元素(文字、图片或其他元素)需要显示时,GridView组件是首选。GridView组件是一个在二维可滚动的网格中展示内容的组件,网格中的内容通过适配器自动插入布局。GridView组件实现效果学习GridView组件2.GridView组件的XML属性要使用网格视图,需要在布局页面中添加GridView组件,其基本语法格式如下。<GridViewandroid:id="@+id/gridView1"android:layout_width="match_parent"android:layout_height="wrap_content">

</GridView>学习GridView组件2.GridView组件的XML属性XML属性描述android:columnWidth设置列的宽度android:gravity设置对齐方式android:horizontalSpacing设置各元素的水平间距android:numColumns设置列数,其属性值通常为大于1的值。如果只有一列,那么最好使用ListView组件来实现android:stretchMode设置拉伸模式,其属性值可以是none(不拉伸)、spacingWidth(仅拉伸元素的间距)、columnWidth(仅拉伸表格元素本身)或spacingWidthUniform(表格元素本身、元素的间距一起拉伸)android:verticalSpacing设置各元素的垂直间距学习GridView组件2.GridView实现原理分析GridView组件在布局设计时需要设计主、子两个布局,即定义主、子两个布局文件。其中,主布局为GridView组件所在的主界面布局,用来显示整体效果;子布局为GridView组件的每个网格布局,用来将多个组件排列显示。例如,可以在子布局中放入ImageView和TextView两个组件,分别用来显示图片和文字。GridView组件的布局实现原理实现系统主窗体利用GridView组件实现校园易App的系统主窗体,共需要6个步骤。(1)在主布局中定义GridView组件,并设置其属性。(2)定义GridView组件中网格子项所使用的子布局文件。(3)在Java文件中创建数据集合。(4)定义适配器,并装载数据。(5)绑定GridView和适配器。(6)设置GridView组件点击事件监听器。【案例3-1】在AndroidStudio中新建工程文件,按以上6个步骤实现校园易App的系统主窗体,即包含所有功能(学校网站、新增待办事项、工作浏览等)的导航展示页面。实现校园易新增待办事项功能02PART学习Spinner组件Android中的Spinner组件是一个列表组件,相当于网页中的下拉列表。Spinner组件会提供一系列可选择的列表项,允许用户从中选择一个。下拉列表通常用于选择输入,如选择性别、日期等。在AndroidStudio中,可以通过<Spinner>标签在XML布局文件中添加Spinner组件,其基本语法格式如下。<Spinnerandroid:id="@+id/spinner"android:layout_width="match_parent"android:layout_height="wrap_content"/>实现新增代办事项功能【案例3-2】实现校园易App新增待办事项功能。新增待办事项效果Logcat窗口显示效果班级通告信息浏览功能03PART学习ListView组件ListView组件是Android中常见的视图组件,主要用途是显示可在屏幕上查看的记录,以及提供详细信息的向下查看功能,并且能够根据数据的长度自适应屏幕显示。例如,ListView组件可用于显示系统设置或功能内容列表等。在AndroidStudio中,可以通过<ListView>标签在XML布局文件中添加ListView组件,其基本语法格式如下。<ListViewandroid:id="@+id/listview"android:layout_width="match_parent"android:layout_height="match_parent"/>实现班级通告信息浏览功能【案例3-3】实现校园易App班级通告信息浏览功能。班级通告信息浏览效果校园易班级照片浏览功能04PART学习RecyclerView组件RecyclerView简称RV,其作为ListView和GridView组件的加强版出现,是Android应用开发中使用极为广泛的几个组件之一,目的是在有限的屏幕上展示大量的内容。RecyclerView组件能够灵活实现大数据集的显示,可实现多种复杂的列表样式,包括纵向列表视图、横向列表视图、网格视图、瀑布流视图,并对它们实现一些拓展视觉效果。可以把RecyclerView组件理解成一块空间,仅定义一个RecyclerView组件就可以得到这块空间,具体如何显示内容则需要根据定义的子布局和适配器决定。RecyclerView组件的主要功能如下。(1)提供了多种LayoutManager,可轻松实现多种样式的布局。(2)支持局部刷新。(3)已经实现了View的复用,不需要类似if(convertView==null)的实现,且回收机制更加完善。(4)容易实现添加item、删除item的动画效果。(5)容易实现拖拽、侧滑删除等功能。实现班级照片浏览功能【案例3-4】实现校园易App班级照片浏览功能。班级照片浏览效果实现触摸事件05PART学习触摸事件触摸事件按触摸点可以分为单点触摸和多点触摸,按触摸动作可以分为按下、放开、移动等。1.按触摸点分类(1)单点触摸:只能识别和支持每次一个手指的触控、点击,若同时有两个以上的点被触碰,则系统不能做出正确反应。很多医院、图书馆等的大厅中有应用这种触摸技术的计算机,支持触摸屏的手机、MP3、数码相机等也多采用单点触摸技术。(2)多点触摸:采用人机交互技术与硬件设备共同实现的技术,能在没有传统输入设备(如鼠标、键盘等)的情况下进行人机交互操作。多点触摸技术能够同时接收来自屏幕上多个点的输入信息。学习触摸事件2.按触摸动作分类(1)ACTION_DOWN:按下,当手指接触屏幕时产生此事件。在多点触摸时,只有第一个手指接触屏幕时才会产生此事件,其他手指接触屏幕不会产生此事件。其表示一个事件序列的开始。(2)ACTION_UP:放开,当手指离开屏幕时产生此事件。在多点触摸时,只有最后一个手指(该手指并不一定是产生ACTION_DOWN事件的那个手指)离开屏幕时才会产生此事件,其他手指离开屏幕不会产生此事件。其表示一个事件序列的结束。(3)ACTION_MOVE:移动,当手指在屏幕上滑动时产生此事件。在多点触摸时,每个手指的滑动都会产生一个此事件。(4)ACTION_POINTER_DOWN:只有在多点触摸时才会产生此事件,在一个事件序列中,除第一个接触屏幕的手指外,其他手指接触屏幕时也会产生此事件。(5)ACTION_POINTER_UP:只有在多点触摸时才会产生此事件,在一个事件序列中,除最后一个离开屏幕的手指外,其他手指离开屏幕时也会产生此事件。(6)ACTION_CANCEL:该事件比较特殊,其和上述事件都不一样,上述事件都是由用户在屏幕上的操作所触发的,但该事件是由系统自动产生的。当一个事件序列需要提前终止时,会由系统自动产生此事件。实现触摸功能【案例3-5】通过单点触摸获取触摸点坐标,同时移动屏幕上的娃娃图片。娃娃图片触摸移动效果Logcat窗口显示效果模块小结在Android中,要想开发更美观、交互性更强的App,需要用到Android高级组件,包括GridView、Spinner、ListView和RecyclerView等,同时可以通过适配器整合数据,并装载数据到高级组件上。本模块先介绍了以上高级组件,再介绍了触摸事件,并介绍了使用各高级组件实现校园易App相应功能的方法。演示结束.

感谢聆听Android移动终端应用开发校园易App系统功能实现ANDROID目录Contents获取注册页面信息实现校园易学校网站功能实现校园易班级新消息提示教学目标知识目标掌握AndroidIntent通信机制。掌握Intent显式启动方法。掌握Intent隐式启动方法。理解Bundle在两个Activity中值传递的方法。掌握Broadcast通信机制。技能目标能够在Android中启动新的Activity。能够利用Android打开网页、拨打电话。能够利用Broadcast实现广播式通信。素质目标勇于探索未知领域。培养提出问题和解决问题的能力。获取注册页面信息01PART使用Intent实现跳转Android中的Intent(意图)主要用于实现Android应用中各组件之间的通信,这里所说的组件指Activity、Service及Broadcast。对于不同的组件,Android提供了不同的Intent发送机制。(1)Activity:Intent对象可以作为参数传递给Context.startActivity()方法或Activity.startActivityForResult()方法,用来启动Activity或者让已经存在的Activity去做其他任务。该Intent对象包含要启动的Activity的信息,以及其他必要的数据。(2)Service:Intent对象可以作为参数传递给Context.startService()方法,用来初始化Service或者发送新指令到正在运行的Service。Intent对象还可以作为参数传递给Context.bindService()方法,用来建立调用组件和目标Service之间的连接。该Intent对象包含要启动的Service的信息,以及其他必要的数据。(3)Broadcast:Intent对象可以作为参数传递给Context.sendBroadcast()、Context.sendOrderedBroadcast()或Context.sendStickyBroadcast()等广播方法,使其被发送给所有感兴趣的BroadcastReceiver。使用Intent实现跳转Intent有两种类型,一种是显式Intent,即明确指出了目标组件名称的Intent;另一种是隐式Intent,即没有明确指出目标组件名称的Intent。显式Intent直接用组件的名称定义目标组件,而开发者往往并不清楚其他应用程序的组件名称,因此显式Intent更多地用于在应用程序内部传递消息。例如,在某应用程序内,一个Activity启动一个新的Activity以响应用户的操作,或者启动一个Service以在后台下载文件。隐式Intent恰恰相反,其不使用组件名称定义需要激活的目标组件,因此被广泛地用于在不同应用程序之间传递消息。Android使用IntentFilter来寻找与隐式Intent相关的对象。使用Intent实现跳转在Android中,Activity提供了和用户交互的可视化界面,因此要想实现跳转功能,需要先添加一个新的Activity布局页面,再在Java文件中创建此Activity类并在AndroidManifest.xml文件中进行配置,最后利用Intent对象实现跳转功能。1.创建Activity创建Activity大致可以分为以下两个步骤。(1)继承androidx.appcompat.app包中的AppCompatActivity类,或继承AppCompatActivity的子类。importandroidx.appcompat.app.AppCompatActivity;publicclassSecondActivityextendsAppCompatActivity{}(2)重写需要的回调方法。通常情况下,需要重写Activity的onCreate()方法,并在该方法中调用setContentView()方法来设置要显示的视图。publicclassSecondActivityextendsAppCompatActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_second);}}使用Intent实现跳转2.配置Activity创建Activity后,还需要在AndroidManifest.xml文件中配置该Activity,如果没有配置该Activity,而又在程序中启动了该Activity,则系统将抛出图的Activity未注册异常。Activity未注册异常使用Intent实现跳转Activity的配置方法是在<application></application>标签中添加<activity></activity>标签。<activity>标签的基本语法格式如下。<activityandroid:icon="@drawable/图标文件名"android:name="实现类"android:label="说明性文字"android:theme="要应用的主题"…>

…</activity>使用Intent实现跳转主题样式描述android:theme="@android:style/Theme.Dialog"Activity显示为对话框模式android:theme="@android:style/Theme.NoTitleBar"不显示应用程序标题栏android:theme="@android:style/Theme.NoTitleBar.Fullscreen"不显示应用程序标题栏,全屏android:theme="@android:style/Theme.Black"黑色背景android:theme="@android:style/Theme.Black.NoTitleBar"黑色背景,无标题栏android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"黑色背景,无标题栏,全屏android:theme="@android:style/Theme.Light"白色背景android:theme="@android:style/Theme.Light.NoTitleBar"白色背景,无标题栏android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen"白色背景,无标题栏,全屏android:theme="@android:style/Theme.Wallpaper"使用系统桌面作为应用程序背景android:theme="@android:style/Theme.Wallpaper.NoTitleBar"使用系统桌面作为应用程序背景,无标题栏android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen"使用系统桌面作为应用程序背景,无标题栏,全屏android:theme="@android:style/Theme.Translucent透明背景android:theme="@android:style/Theme.Translucent.NoTitleBar"透明背景,无标题栏android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"透明背景,无标题栏,全屏android:theme="@android:style/Theme.Panel"以面板风格显示android:theme="@android:style/Theme.Light.Panel"以平板风格显示Android自带的主题样式使用Intent实现跳转3.实现跳转功能跳转功能的实现需要用到Intent的显式启动,即在Intent中明确要启动的Activity的类名称。通常,针对一个Android项目中第一个启动的Activity,需要在AndroidManifest.xml文件中进行配置,并通过<intent-filter>标签将其设置为程序入口。<activityandroid:name=".MainActivity"android:exported="true"><intent-filter><actionandroid:name="ent.action.MAIN"/><categoryandroid:name="ent.category.LAUNCHER"/></intent-filter></activity>使用Intent实现跳转如果有其他的Activity需要启动,则需要用到Intent和startActivity()方法。(1)创建Intent对象,可以使用以下基本语法格式。其中,第一个参数为当前页面类,第二个参数为下一跳转的页面类。Intentintent=newIntent(ContextpackageContext,Class<?>cls);(2)使用startActivity()方法启动Activity,传入刚创建的Intent对象,其基本语法格式如下。publicvoidstartActivity(Intentintent);使用Intent实现跳转【案例4-1】实现校园易App用户登录成功跳转页面功能。登录成功页面使用Intent实现数据传递在启动Activity时还可以传递数据,可以在Intent对象的putExtra()方法中将要携带的数据信息保存到Intent对象中,还可以利用Bundle对象将数据信息通过键值对(key-value)的方式放入Intent对象中。属性作用Componentname指定处理Intent对象的组件名称ActionIntent要完成的一个动作Category对执行动作的类别进行描述Data向Action提供要操作的数据Extras向Action提供要操作的附加数据Flags提示Android程序如何启动一个ActivityIntent属性及其作用使用Intent实现数据传递Bundle主要用于传递数据,其保存的数据以键值对的形式存在。人们经常使用Bundle在Activity之间传递数据,传递的数据可以是byte、int、long、float、string等基本类型的数据或它们对应的数组,也可以是对象或对象数组。Bundle提供了putXxx()/getXxx()方法,用于写/读基本类型的数据。(1)putXxx(Stringkey,Xxxvalue):写数据。(2)getXxx(Stringkey):读数据,其根据key值获取Bundle中的数据。例如,将数据存放于Bundle对象中,并添加到Intent对象中的写数据方法如下。Bundlebundle=newBundle();bundle.putstring("username","user");bundle.putInt("password",123456);intent.putExtras(bundle);在跳转后的页面中通过Intent读取携带数据的方法如下。Bundlebundle=this.getIntent().getExtras();stringbundleString=bundle.getstring("username");intbundleInt=bundle.getInt("password");实现用户注册功能【案例4-2】实现校园易App用户注册功能。用户注册效果用户注册成功数据传递效果实现校园易学校网站功能02PART使用Intent实现隐式启动Intent隐式启动不会指定特定的组件,而是会声明要执行的常规操作,从而允许其他应用中的组件来进行处理。使用隐式Intent时,Android通过将Intent的内容与在设备上其他应用的清单文件中声明的Intent过滤器进行比较,从而找到要启动的相应组件。如果Intent与Intent过滤器匹配,则Android将启动该组件,并向其传递Intent对象。1.Intent过滤器Intent过滤器是应用清单文件中的一个表达式,用于指定该组件要接收的Intent类型。例如,通过为Activity声明Intent过滤器,可以使其他应用直接使用某一特定类型的Intent启动Activity。同样,如果没有为Activity声明任何Intent过滤器,则Activity只能通过显式Intent启动。<intent-filter>标签的基本语法格式如下。<intent-filterandroid:icon="drawableresource"android:label="stringresource"android:priority="integer">…</intent-filter>使用Intent实现隐式启动2.Intent隐式启动方法Intent隐式启动需要在创建Intent对象时传入两个参数,一个参数是动作(Action),指定要执行的通用操作(查看或选取)的字符串,常用的动作常量如表4-3所示;另一个参数是数据(Data),引用待操作数据或该数据的互联网媒体类型的URI(Uri对象),常用的数据类型如表4-4所示。例如,如果需要在自己的应用程序中展示一个网页,则可以调用系统的浏览器来打开该网页,而不必编写一个浏览器,基本代码如下。Intentintent=newIntent(); //创建Intent对象intent.setAction(Intent.ACTION_VIEW); //为Intent设置动作intent.setData(Uri.parse("")); //为Intent设置数据startActivity(intent); //将Intent传递给Activity使用Intent实现隐式启动动作常量描述ACTION_MAIN作为初始的Activity启动,没有数据输入/输出ACTION_VIEW将数据显示给用户ACTION_ATTACH_DATA指示一些数据应该附属于其他地方ACTION_EDIT将数据显示给用户,供用户编辑ACTION_PICK从数据中选择一项,并返回该项ACTION_CHOOSER显示Activity选择器,允许用户在继续前按需选择ACTION_GET_CONTENT允许用户选择特定类型的数据并将其返回ACTION_DIAL使用提供的数据拨打电话ACTION_CALL使用提供的数据给某人拨打电话ACTION_SEND向某人发送消息,接收者未指定ACTION_SENDTO向某人发送消息,接收者已指定ACTION_ANSWER接听电话ACTION_INSERT在给定容器中插入空白项ACTION_DELETE从容器中删除给定数据ACTION_RUN无条件运行数据ACTION_SYNC执行数据同步ACTION_PICK_ACTIVITY挑选给定Intent的Activity,返回选择的类ACTION_SEARCH执行查询ACTION_WEB_SEARCH执行联机查询ACTION_FACTORY_TEST工厂测试的主入口点常用的动作常量使用Intent实现隐式启动数据类型数据格式示例浏览网页http://网页格式拨打电话tel:电话号码tel送短信smsto:短信接收号码smsto找SD卡文件

file:///sdcard/dirfile:///sdcard/Download/1.jpg显示地图geo:坐标,坐标geo:36.5,-26.7联系人信息content://联系人信息content://com.android.contacts常用的数据类型使用Intent实现隐式启动3.实现校园易App跳转到学校网站功能【案例4-3】实现校园易App跳转到学校网站功能。跳转前页面效果学校网站实现帮助功能【案例4-4】实现校园易App帮助功能。点击按钮可以自动拨打客服电话,还可以给客服发送短信。帮助页面效果拨打电话页面拨打电话页面

发送短信页面实现班级新消息提示功能03PART学习Android广播机制Android发出的广播为系统广播,如通知电量低、拍摄一张照片等。开发者根据程序需要自己定义的广播为用户自定义广播。在Android中可以有任意数量的广播接收器,用于对所有感兴趣的广播进行接收,所有的广播接收器都继承BroadcastReceiver基类。广播接收器没有用户界面,但可以启动一个Activity来响应接收到的消息,或者使用一个NotificationManager来通知用户。1.广播的种类广播按属性分为以下几种。(1)标准广播(NormalBroadcast):完全异步的广播。广播发出后,所有的广播接收器几乎同时接收到这条广播。不同的App可以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论