应用开发基础课件完整版课件全套ppt整套电子教案最全电子讲义

上传人:无*** 文档编号:193125421 上传时间:2023-03-08 格式:PPT 页数:319 大小:15.84MB
收藏 版权申诉 举报 下载
应用开发基础课件完整版课件全套ppt整套电子教案最全电子讲义_第1页
第1页 / 共319页
应用开发基础课件完整版课件全套ppt整套电子教案最全电子讲义_第2页
第2页 / 共319页
应用开发基础课件完整版课件全套ppt整套电子教案最全电子讲义_第3页
第3页 / 共319页
资源描述:

《应用开发基础课件完整版课件全套ppt整套电子教案最全电子讲义》由会员分享,可在线阅读,更多相关《应用开发基础课件完整版课件全套ppt整套电子教案最全电子讲义(319页珍藏版)》请在装配图网上搜索。

1、第一章 Android入门基础目录Android简介Android开发环境Android应用开发基本流程Android程序调试总结一、Android简介初识AndroidAndroid是由一种基于Linux的自由及开放源代码的操作系统,主要应用于移动设备,如智能手机、平板电脑等,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国较多人称为“安卓”或“安致”。Android操作系统最初是由一家名为Android的公司进行研发的,主要支持手机。Android发展历史Anroid1.0:在2008年9月发布的Android第一版。Anroid1.5:在2009年4月30日发布,命名

2、为Cupcake(纸杯蛋糕)。Anroid1.6:在2009年9月15日发布,命名为Donut(甜甜圈)。Anroid2.2:在2010年5月20日发布,命名为Froyo(冻酸奶)。Anroid2.3:在2010年12月7日发布,命名为Gingerbread(姜饼)。Anroid3.0:在2011年2月3日发布,命名为Honeycomb(蜂巢)。Anroid4.0:在2011年10月19日在香港发布,命名为Ice Cream Sandwich(冰激凌三明治)。Anroid4.1/4.2:在2012年6月28日发布,命名为Jelly Bean(果冻豆)。Anroid4.4:在2013年9月4日发

3、布,命名为KitKat(奇巧巧克力)。Anroid5.0:在2014年11月3日发布,命名为Lollipop(棒棒糖)。Anroid6.0:在2015年5月28日发布,命名为Marshmallow(棉花糖)。Anroid7.0:在2016年3月10日发布,命名为Nougat(牛轧糖)。Android应用场景Android从开始作为手机操作系统,现在逐渐成为平板电脑、智能手表、智能电视、智能眼镜、智能汽车等设备的操作系统。同时通过这些智能硬件产品的推出,相应的在该系统上的软件应用(通信、教育、监控、打车、购物、餐饮、娱乐等)也吸引了更多创新创业人才来开发这块市场。2016.62015.12 应用

4、用户规模(万)网民使用率用户规模(万)网民使用率半年增长率手机即时通信6034691.9%5571989.9%8.3%手机网络新闻5180078.9%4816577.7%7.5%手机搜索5240979.8%4778477.1%9.7%手机网络音乐4434667.6%4164067.2%6.5%手机网络视频4402267.1%4050865.4%8.7%手机网上支付4244564.7%3577157.7%18.7%手机网上购物4007061.0%3396754.8%18.0%手机网络游戏3023946.1%2792845.1%8.3%手机网上银行3045946.4%2767544.6%10.1%

5、手机网络文学2811842.8%2590841.8%8.5%手机旅行预定2322635.4%2099033.9%10.7%手机邮件1734326.4%1667126.9%4.0%手机网上外卖1462722.3%1041316.8%40.5%手机论坛/BBS846212.9%860413.9%-1.7%手机网上炒股48157.3%42936.9%12.1%手机在线教育698710.6%53038.6%31.8%表1-1 2015.122016.6 中国网民各类手机互联网应用的使用率Android体系结构Android是一个开放的软件系统,它采用分层的结构思想,由上到下分为4个层次,它们分别是:(

6、1)应用程序层(Application)(2)应用程序框架层(Application Framework)(3)核心类库(Libraries)(4)Linux内核(Linux kernel)图1-1 Android 体系结构应用程序层Android系统不单是手机操作系统,也预先在系统里安装了一组常用应该程序,包括联系人程序、短信程序、日历程序、浏览器程序等。该层是Android系统提供给应用程序层所使用的API框架,在进行应用程序开发的过程中都要使用到这些API框架,并必须遵守其开发原则,此做法的目的是减少重用组件使用的工作量。应用程序框架层核心类库核心类库由系统库与运行环境两部分组成,系统库

7、主要是由C/C+库为Android系统提供主要的特性支持,如SQLite库提供了一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎,Webkit库提供了浏览器内核的支持等。Linux内核层Android是基于Linux2.6内核,并针对手机进行了特定的裁剪与优化,如电源管理、进程管理、网络协议等。二、Android开发环境Java下载安装JDK下载:Android开发之前先要进行JDK安装,我们在Oracle官方下载最新jdk1.8,其下载地址为http:/ version,然后回车,查看JDK的版体信息,如果安装成功,则会出现如下图所示信息:图1-2 检查 JDK 安装情况ADT Bu

8、ndle下载最初进行Android开发时,先要下载Eclipse开发工具,然后下载Android SDK工具包,最后在Eclipse上添加插件ADT。图1-3 Eclipse下载SDK Manager.exeSDK Manager.exe 负责管理计算机上目前安装的各种版本的 Android SDK。当前可用的 Android SDK 版本,如图 1-4 所示。我们需要国内的代理来更新。在 Android SDK Manager 窗口的 Tools 菜单下选择Options,在弹出的 Android SDK Manager-Settings 对话框中进行代理设置,如图 1-5 所示:图1-4

9、Android SDK Manager 窗口图1-5 Android SDK Manager 代理设置SDK SDK 为开发者进行软件开发提供了丰富的库文件和其他开发工具。整个 SDK 文件夹下包括多个子文件夹,各有不同的用途,如图 1-6 所示。build-tools:各版本 SDK 的编译工具。extras:扩展开发包,如高版本的 API 在低版本中开发时使用。platforms:各版本的 SDK。根据 API Level 划分的 SDK 版本。platform-tools:各版本 SDK 的通用工具,比如 adb、fastboot 和 sqlite3 等文件 tools:各版本 SDK

10、的自带工具。如 DDMS,draw9patch,mksdcard。图1-6 Android 5.0 更新部分Eclipse Eclipse 是进行 Android 应用程序开发的一种工具,在 Eclipse 上需要安装 ADT 插件来为用户提供便捷的图标按钮操作。ADT 插件安装成功后,在 Java-Eclipse 窗口中有如图 1-7所示的 3 个图标。方框中最左边的图标表示 Android SDK 管理器,它和 SDK Manager.exe 功能相同;中间的图标是配置与启动 Android 模拟器的,Android 模拟器的大部分功能与真机效果是相同的;最右边的图标是用来检测Androi

11、d 程序代码的。点击中间的图标,出现如图 1-8 所示的窗口。图1-7 Java-Eclipse 窗口图1-8 Android Virtual Device(AVD)ManagerEclipse 模拟器创建创建名为android 5.0 模拟器,选择 3.2 英寸屏幕的手机,目标 SDK 版本为 Android 5.0,接着再指定手机内存与 SD 卡的存储空间。创建成功后,在 Android Virtual Device(AVD)Manager 窗口中会显示刚才创建的模拟器信息,然后点击右侧的 Start 按钮,弹出 Launch Options 对话框,启动成功的模拟器界面如图 1-10 所

12、示:图1-9 创建模拟器图1-10模拟器界面Android 调试工具:Android的调试工具是指位于SDK的platform-tools目录下的adb.exe,adb常用命令如下:adb start-server:开启adb服务。adb kill-server:关闭adb服务。adb devices:查看当前连接的设备。adb install:安装apk程序。adb uninstall:卸载apk程序。adb push:上传文件到设备adb pull:下载文件到设备。图1-11 adb devices命令DDMS的全称Dalvik Debug Monitor Service,为IDE、模拟器

13、与真机设备构建了一座桥梁,程序员可以通过DDMS看到目标机器上运行的进程/现成状态,可以查看进程的Heap信息,可以查看Logcat信息,可以查看进程分配内存情况,模拟拨入电话,模拟接收短信等。DDMS使用图1-12 DDMS 视图使用adb命令安装与卸载Android应用程序安装Android应用程序:在电脑的“开始”菜单附件命令提示符下,把路径切换到Android SDK的安装目录下platform-tools文件夹下。为了安装的方便,直接将QQ拼音输入法(QQshurufa_1928.apk)文件放到了platform-tools文件夹下。然后使用adb install命令将以上apk文

14、件安装到Android模拟器中。卸载Android应用程序:在电脑的“开始”菜单附件命令提示符下,把路径切换到Android SDK的安装目录下platform-tools文件夹下,使用adb uninstall命令卸载指定的Android应用程序。三、Android应用开发基本流程创建HelloWorld项目首先在Eclipse中菜单中选择File|New命令,在子菜单中选择Android Application Project命令,如果没有这个选项,则选择Other。在弹出的对话中选择Android,显示多个Android项目类型,选择Android Application Project

15、命令。点击Android Application Project命令后,弹出如右图所示:图1-13新建项目运行程序启动模拟器,然后在Eclipse中Package Explore中选择要运行的工程名HelloWorld,点击右键,在弹出的菜单中选择Run AsAndroid Application,即可在模拟器看到工程运行的界面,其结果显示如左图所示。如果需要横屏显示结果,在电脑键盘上使用CTRL+F12组合键,显示结果如右图所示。图1-14 HelloWorld 运行结果 图1-15 HelloWorld 横屏运行结果JUnit单元测试:JUnit是一个测试框架,它在AndroidSDK1.

16、5就加入了自动化测试功能,可以在单独完成某一个功能就可以进行测试,而不需要安装到真实手机或模拟器中,这样可以大大提高应用程序的开发速度与质量。一般分为两种方法:对所有方法进行测试,如图1-16,对单个方法进行测试,如图1-17:四、Android程序调试图1-16对所有方法进行测试图1-17对单个方法进行测试LogCat的使用 LogCat是Android应用开发过程中用来显示打印日志用的工具,特别是后期调试程序BUG用的比较多,类似在Java中用System.out.print输出,LogCat可以根据自己的需 要 定 制 输 出 结 果。在 A n d r o i d 应 用 程 序 中

17、进 行 信 息 输 出 时 主 要 采 用 android.util.Log 类的静态方法来实现,LogCat 划分了 5 个打印日志的级别,Log.v()、Log.d()、Log.i()、Log.w()、Log.e()五种信息输出到 LogCat 控制台。图1-18 LogCat 控制台五、总结了解Android的基本发展情况掌握Android开发环境配置以及DDMS的使用掌握Android程序开发的基本流程掌握Android程序的调试过程 第二章 Android应用结构分析目录Android应用程序目录结构Android应用程序分析 总结AndroidManifest.xml文件应用程序权

18、限说明一、Android应用程序目录结构 src目录:主要是用来存放Android应用程序中的Java代码,并且根据程序员的规定存放在相应的包下。gen目录:gen目录下的文件是在创建工程时由Eclipse插件ADT自动生成的,这个文件是只读模式的,不能更改。assets目录:assets目录存放了工程中用到的相关资源文件,如音频文件、文本文件等,并且该目录下存放的资源文件都不进行编译的原生文件。bin:该目录下存放生成的可执行文件。如果工程项目没有执行,则该目录为空。若执行后,则在该目录下生成执行文件。res目录:res目录存放了工程经常使用的资源文件,例如图片、布局等文件。layout 文

19、件夹:主要用来存放 XML 语言编写的布局文件,当然也可以使用 Java 语言来动态生成布局文件 menu 文件夹:主要用来存放 XML 语言编写的菜单布局以及 Action Bar 的声明 values 文件夹:主要用来存放各种类型的数据。proguard-project.txt 文件是混淆代码的脚本配置文件project.properties 文件是项目的配置信息,一般不进行修改。可以通过修改 target 进行Android 应用开发基础教修复 图2-1 HelloWorld 项目目录二、Android应用程序分析资源描述源文件string.xml:应用程序开发时,使用纯文本字符串中需要

20、res/values目录中的一个XML文件(通常名为res/values/string.xml),根元素为resources,希望编码为资源的每个字符串都有一个string子元素。string元素包含name特性,这是此字符串唯一的名称,还有一个文本元素,包含字符串的文本。在布局文件使用string的资源:在布局文件中引用string的资源格式(sting/,其中的省略号表示唯一的名称,例如sting/hello)。在Java代码中使用string的资源:通过使用getString()方法和字符串资源的ID来获取string.xml中资源。“+id”与“id”的区别:“+id/”表示在R文件中

21、会生成一个新的id,变量名就是“/”后面的值,例如,+id/tv_hello会在R.java文件中生成int tv_hello=value,其中value是一个十六进制的数。如果tv_hello在R.java中已经存在同名的变量就不会生成新的变量,而该组件会使用这个已存在的变量的值。“id/tv_hello”表示引用已经定义好的id。数组(Array)资源子元素,定义普通类型的数组。子元素,定义字符串类型的数组。子元素,定义整数类型的数组。数据访问方法int getIntArray(int id):根据资源文件中的整型数组资源的名称来获得实际的数据。String getStringArray(

22、int id):根据资源文件中的字符串数组资源的名称来获得实际的数据。TypedArray obtainTypedArray(int id):根据资源文件中的普通数组资源的名称来获得实际的数据。【例2.1】根据 Android 操作系统语言的不同,实现应用程序的中文版内容与英文版内容自由切换。将 Android 模拟器的语言从英文切换到中文。图2-2切换语言图2-3选择“中文简体对于Android的国际化,要在 res 目录下新建对应的字符串目录。例如若模拟器的语言是中文,则在项目的 res 目录下新建一个 values-zh-rCN 目录,然后将翻译好的 strings.xml 或array

23、s.xml 文件放到该目录下即可。下面给出部分国家的文件目录名称(应用程序中默认文件夹名为 values,用英文表示,加上后缀后变为相应国家)。中文(中国):values-zh-rCN。希腊文:values-el-rGR。法文(法国):values-fr-rFR。英语(英国):values-en-rGB。英文(澳大利亚):values-en-rAU。英文(加拿大):values-en-rCA。【例2.1】运行结果如图 2-4所示,桌面程序显示如图 2-5 所示。图2-4 切换语言图2-5 选择“中文简体【例2.2】编写一个读取 Array 数组中天气信息的应用程序。创建一个名为 Array_A

24、ctivity 的项目,包名为 com.hzu.array_activity,Activity 组件名为 MainActivity。在 res/values 目录下新建一个名为 arrays.xml 的文件。编写逻辑代码。打开 src/com.hzu.array_activity 下包中的 MainActivity.java 文件【运行结果】在 Eclipse 中启动 Android 模拟器,接着运行 Array_Activity 项目,在 Eclipse 的 LogCat 控件台显示的信息如图 2-6 所示。图2-6 Array数组中显示的信息颜色Color资源 RGB:分别指定红、绿、蓝三

25、原色的值(只支持0f这16级颜色)来代表颜色。ARGB:分别指定红、绿、蓝三原色的值(只支持0f这16级颜色)以及透明度(只支持0f这16级透明度)来代表颜色。RRGGBB:分别指定红、绿、蓝三原色的值(支持00ff这256级颜色)来代表颜色。AARRGGBB:分别指定红、绿、蓝三原色的值(支持00ff这256级颜色)以及透明度(支持00ff这256级透明度)来代表颜色。【例 2.3】使用 RGB 分别表示默认颜色、红色、绿色三种字体颜色。Drawable资源Drawable资源是Android应用程序开发过程中经常使用的资源。Android通过Drawable来处理图像,可能是一张图片(*.

26、png、*.jpg、*.gif等),也可能是一个逐帧动画,可能是一片红色区域,更可以是一个xml文件。Drawable资源通常保存中在res/drawable目录下,为了适应不同尺寸手机的屏幕分辨率,具体可能保存中/res/drawable-ldpi、/res/drawable-mdpi、/res/drawable-hdpi、/res/drawable-xhdpi、/res/drawable-xxhdpi目录下【例 2.4】编写关于一个 Button 按下与抬起以及一个 CheckBox 被选中与未被选中显示效果的应用程序dimens.xmlpx(像素):屏幕上的点,绝对长度,与硬件相关。mm

27、(毫米):长度单位。in(英寸):长度单位。pt(磅):1/72英寸。dp(与密度无关的像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp=1px。注意随着设备的屏幕密度的改变,dp与px之间的换算会有所改变。sp(可伸缩例素):使用与dp相同的设计理念。主要用于字体大小显示。style.xml在Android系统中,预先定义了很多的样式与主题,这些样式与主题主要用于使布局显示呈现在用户面前更加美观。style 定义的步骤1)判断需要统一 style 的控件有哪些属性是一致的。2)在 value 的 style.xml 中定义自己的 style。style 的 name 决

28、定了style 后的名字。每一项 item 都是一个布局中的属性,分别对应属性名和属性值。style 继承 parent 中定义过的属性值。3)在 XML 布局中,控件使用自定义的 style,例如:style/stylename三、布局文件在创建 HelloWorld 项目成功后,activity_main.xml 在 HelloWorld 项目的 res/layout 目录下,注意其格式规范规律。1)设置其内容要求均以“android:”开头,例如定义布局的高度和宽度:android:layout_width=match_parentandroid:layout_height=match_

29、parent2)布局标签的开始标签和结束标签成对存在,布局可镶嵌。四、AndroidManifest.xml文件AndroidManifest.xml文件提供了应用程序的基本信息,是一个功能清单文件,相当于是应用程序的全局描述。在创建一个新工程成功后,Eclipse下的ADT会自动创一个AndroidManifest.xml文件,每一行为一个TableRow。1)android:versionCode 表示应用程序的相对版本,即版本更新过多少次。2)android:versionName 表示应用程序的版本信息,需要显示给用户。3)android:minSdkVersion 表示使用 Andr

30、oid SDK 的最低版本。4)android:targetSdkVersion 表示应用程序的目标版本。在应用程序中,遇到需要访问网络等情况时,在AndroidManifest.xml中规定要使用权限声明。这种做法的优势可以指定其它应用程序是否有权限访问该程序。在 AndroidManifest.xml 中声明允许访问网络的权限格式如下:1 3 通过上面的代码可知权限声明的用法非常简单。五、应用程序权限说明在 Android 中有很多种权限,并且这些权限声明都放在 AndroidManifest.xml 中,下面介绍一些比较常用的权限,如表 2-1所示。六、总结了解Android应用程序目录

31、结构掌握Android应用程序中各个文件基本属性与使用方法AndroidManifest.xml文件了解Android程序程序权限 第三章 基本控件和事件处理目录基本控件概述Android基本的控件总结Android事件处理一、基本控件概述Android应用开发是一个基于图形用户界面(Graphical User Interface,简称 GUI)的开发,为了达到用户满意的界面,最后通过点击相关图形界面,就能很好的操作这个应用,所以程序员设计的应用程序必须以用户友好性为前提。Android提供了大量功能强大的UI组件,并且这些组件配合使用事件响应机制,能完成用户点击后的相关动作行为,这些组件我

32、们就称为控件。关于View类的属性 View类常用的XML属性属性方法含义android:backgroundsetBackgroudResource(int)设置背景android:clickablesetClikable(boolean)设置View是否响应单击事件android:visiblesetVisible(int)控制View的可 见性android:focusablesetFocuable(boolean)控件View是否可以获取焦点android:idsetId(int)为View设置标识符,可通过findViewById方法获取二、Android基本的控件所有可视控件都继承

33、View类属性。表3-1 View常用的属性ViewGroupViewGroup(视图组)是android.view.Viewgroup的一个实例,是一特殊类型的视图,可以视为View的容器。ViewGroup的子控件既可以是View类,也可以是ViewGroup类。使用ViewGroup可以创建比较复杂的界面元素。TextView类常用的属性TextView属性方法含义android:textsetText(charSequence)设置TextView显示文本的内容android:textSizesetTextSize(float)设置TextView的文本大小android:textCo

34、lorsetTextColor(ColorStateList)设置TextView的文本颜色android:textStylesetTextStyle(TextStyle)设置TextView的文本风格(如粗体、斜体)android:gravitysetGravity(int)设置TextView在文本框内文本的对齐方式android:linessetLines(int)设置TextView最多占几行android:heightsetHeight(int)设置TextView的高度,以像素为单位android:widthsetWidth(int)设置TextView的宽度,以像素为单位andr

35、oid:paddingSetPadding(int)设置TextView中显示文本与其父容器边界的间距表3-2 TextView常用属性以上属性的区别android:padding与android:layout_margin的区别 Padding是以父View为参考点,规定它里面的内容与这个父View边界的距离。layout_margin是以自己为参考点,规定自己和其它(上下左右)的View之间的距离,如果在当前这一级只有一个View,那它设置的效果就和Padding一样。android:gravity与android:layout_gravity的区别gravity用于设置这个View内所有

36、子元素的对齐方式;layout_gravity用于设置这个View在父容器中的对齐方式。特别说明:TextView的属性之android:textSize设置标签中字体的大小,它一般以单位sp来表示字体大小单位。【例 3.1】设计如图 3-1所示的布局文件。图3-1 Text Viewde 效果1 /结束标志 Button控件按钮 Button 继承了 TextView,其主要的作用是在界面上生成一个按钮,当需要用户点击界面某个区域来产生特定的行为时,就可以使用 Button。用户点击这个按钮后将会触发一个 onClick事件,还要为按钮添加 setOnClickListener()方法才能真

37、正实现完整的事件监听。在JAVA文件中进行编写关联。Button 控件位于 Android.widget.Button 类中,如果 Java 代码中使用这个控件,需要在头部添加“import android.widget.Button;”语句。EditText EditText(输入框)可以向用户显示文本内容,也允许用户对文本内容进行编辑,它为TextView的子类,拥有TextView所有属性。最主要用途是用户登录界面,如用户名与密码等信息的输入。EditText定义位于Android.widget.EditText类中,如果Java代码中使用这个控件,需要的头部添加“import andr

38、oid.widget.EditText;”。EditText特有属性:android:digits:指定字段只接受某些字符;android:hint:输入为空时给的提示;android:inputType:限定输入的字符类型;android:singleLine:控制字段是单行输入框还是多行输入框(换句话说,按回车键是将焦点移到下一个部件,还是换行)。ImageViewImageView类常用的属性属性方法含义android:adjustViewBoundssetAdjustViewBounds(boolean)是否保持图片的宽高比android:maxHeightsetMaxHeight(i

39、nt)设置View的最大高度android:maxWidthsetMaxWidth(int)设置View的最大宽度android:srcsetImageResource(int)设置View的drawable(如图片,也可以是颜色,但是需要指定View的大小)android:scaleTypesetScaleType(ImageView.ScaleType)调整或移动图片来适应ImageView的尺寸,当scaleType 取值为fitXY时拉伸图片(不按比例)以填充View的宽高;当scaleType取值为Center时按原图大小居中显示;当scaleType取值为centerCrop时按比

40、例扩大图片居中显示;当scaleType取值为fitCenter时把图片按比例扩大/缩小到View的宽度并居中显示。表3-3 ImageView常用属性 CheckBox(复选框)方法含义isChecked()判断是否被选中,如选中则为true,否则为false。setChecked(boolean checked)通过传参来改变控件的状态。performClick()使用代码主动去调用控件的点击事件。toggle()取反控件选中的状态,即原来是选中则返回未选中,原来未选中则返回选中。setOnCheckedChangeListener(CompoundButton.OnCheckedChan

41、geListener listener)为控件添加OnCheckedChangeListener监听器。CheckBox常用方法表3-4 CheckBox常用属性 RadioButton和RadioGroup RadioButton与CheckBox不同的,在于一组CheckBox可以一次选中多个,而RadioButton只能选中其中一个,所以RadioButton通常要与RadioGroup一起使用,用于定义一组单选按钮。如下图所示:图3-2 一个RadioButton效果 DatePicker(日期控件)DatePicker常用方法 方法含义getYear()获取当前日期的年getMont

42、h()获取当前日期的月getDayOfMonth()获取当前日期的日setMaxDate(long maxDate)设置最大日期setMinDate(long minDate)设置最小日期updateDate(int year,int month,int dayOfMonth)更新当前日期init(int year,int monthOfYear,int dayOfMonth,DatePicker.OnDateChangedListener onDateChangedListener);初始化日期,以onDateChangedListener为监听器对象,监听日期的变化表3-5 DatePic

43、ker常用方法 TimePicker(时间控件)TimePicker常用方法 方法含义getCurrentHour()获取当前时间的小时getCurrentMinute()获取当前时间的分钟is24HourView()获取是否为24小时模式setCurrentHour(Integer currentHour)设置当前时间的小时setCurrentMinute(Integer currentMinute)设置当前时间的分钟setIs24HourView(Boolean is24HourView)设置24小时模式setEnabled(Boolean enabled)设置时间控件是否可用setOnT

44、imeChangedListener(TimePicker.OnTimeChangedListener onTimeChangedListener)为时间控件添加OnTimeChangedListener监听器表3-6 TimePicker常用方法三、Android事件处理 基于回调的事件处理 对于回调的事件处理,主要的实现方法是通过重写Android中特定组件的回调方法和Android中Activity的回调方法。基于监听的事件处理 对于监听的事件处理,主要的实现方法是为Android界面上的控件绑定特定的事件监听器,为程序员处理各种逻辑操作。一般情况下,基于回调的事件处理用于处理一些具有普

45、遍性的事件;有些操作在无法基于回调的事件处理时,就要使用基于监听的事件处理。基于回调的事件处理 onKeyDown()方法声明格式:boolean onKeyUp(int keyCode,KeyEvent event)onKeyUp()方法声明格式:boolean onKeyUp(int keyCode,KeyEvent event)onTouchEvent()方法声明格式:public boolean onTouchEvent(MotionEvent event)【例 3.7】在屏幕区域内捕获用户的触击、抬起与滑动事件,并记录相关事件的坐标。在 res/layout 目录下的布局xml文件中

46、编写代码。在 src/com.hzu.touch_activity 目录下的java文件中编写代码。图3-3屏幕区域内捕获用户操作基于监听的事件处理 EventSource(事件源):产生这个事件的组件即事件发生的来源,如按钮、窗口等。Event(事件):UI上面的事件源发生的特定的事件,并且该事件封装了该操作的相关信息,当应用程序需要知道事件源上所发生事件的具体信息,一般都是由Event对象来取得,如用户触摸屏幕的位置等。EventListener(事件监听器):监听事件源发生的事件,并对被监听的事件做出相应的响应。一个事件监听器可包含多个事件处理器,每一个事件处理器就是一个事件处理方法。应

47、用程序中实现监听器的四种形式匿名内部类实现:使用匿名内部类创建事件监听器。外部类实现:将外部类实现事件监听器接口。内部类实现:将事件监听器类定义为当前类中。使用标签实现:直接在布局文件中指定标签绑定事件处理方法,主要是在布局文件中使用android:onClick来实现。【例 3.8】实现一个简单的文字处理器,其可以改变文字背景、文字样式,且具有更改文字、擦除文字的功能。图3-4 简单的文字处理器监听器四种形式的优缺点内部类形式:可以在当前类中复用该监听器类,即多个事件源可以注册同一个监听器;可以自由访问外部类的所有界面控件,内部类实质上是外部类的成员。外部类形式:不能自由访问创建GUI界面中

48、的组件且编程不够简洁,某个事件监听器确实需要被多个GUI界面所共享,且主要是完成某种业务逻辑的实现,则可以考虑使用外部类的形式来定义事件监听器类。匿名内部类形式:这种事件处理器都没有什么复用价值,大部分事件监听器只是临时使用一次,所以使用匿名内部类形式的事件监听器比较常见。使用标签形式:这种事件处理器涉及到布局文件与Java代码两个部分的处理,对于少量事件监听还是可以的,灵活度不是很高。四、总结掌握Android各类基本控件的使用理解Android事件处理机制 第四章 布局目录布局简介常见布局总结嵌套布局一、布局简介当界面有多少控件时,需要按照需求进行合理摆放,布局管理器是用来安排内部控件所在

49、的位置。所有的布局管理器都是继承ViewGroup类的子类,都可以作为一个容器来使用。布局内部的控件被认为布局的子控件,一个布局也可以成为另外一个布局的子控件,即布局管理器可以嵌套其它布局管理器。二、常见布局Layout(布局)是ViewGroup的实现类(即子类),为视图控件提供排列结构。常用的布局:FrameLayout(帧布局)LinearLayout(线性布局)TableLayout(表格布局)RelativeLayout(相对布局)AbsoluteLayout(绝对布局)布局参数:布局参数定义控件的位置、尺寸等属性。控件的位置由视图的左上点坐标、对齐方式等属性确定。控件的尺寸由视图的

50、宽度、高度等属性确定。Layout常见布局常见布局FrameLayout(帧布局)是最简单的布局方式。从屏幕的左上角开始显示子元素。后添加的子元素覆盖前一个子元素。【例 4.1】设计出如图 4-1 所示的布局文件。图4-1 帧布局显示效果常见布局常见布局LinearLayout(线性布局)是最常用的布局方式。以水平或垂直的方式排列子对象一个方向只能有一个对象。【例 4.2】设计如图 4-2 所示的布局文件 图4-2 水平线性布局图4-3 垂直线性布局常见布局常见布局LinearLayout 常用属性(布局参数):andriod:orientation:设置排列方向android:layout_

51、width:设置宽android:layout_height:设置高andriod:gravity:设置内部元素的对齐方式等。android:layout_weight:设置控件的重要程度。所有控件都有一个weight值,默认为零,意思是需要显示多大的控件视图就占据多大的屏幕空间。常见布局常见布局TableLayout(表格布局)以多行多列的方式显示子对象。每一行为一个TableRow。每一行可以拥有0个或多个的单元格(cell)。每个单元格内是一个View对象。TableLayout 容器不会显示行、列 或单元格的边框线。列的属性Shrinkable:设置列的宽度是否可收缩,收缩指表格能够适

52、应其父容器的大小。Stretchable:设置列的宽度是否可拉伸,拉伸指可填满表格中空余的空间。Collapsed:设置列是否被隐藏。【例 4.3】设计如图 4-4 所示的布局文件。图4-4 TableLayout效果默认情况下每个子控件占据一列,而每列的宽度由表格各列中最宽的那个单元格来决定,整个表格布局的宽度取决于父容器的宽度。常见布局常见布局RelativeLayout 相对布局常用属性值为ture或false的属性layout_centerHorizontal:位于父对象的横向中央。layout_centerInParent:位于父对象的中央。layout_alignParentLef

53、t:与父对象的左侧对齐。取其他对象id的属性layout_toTightOf:位于给出id对象的右侧。layout_alignTop:与给出id对象的上边界对齐。取值为像素的属性layout_marginBottom:当前对象的下方的留出的空白。【例 4.4】设计如图 4-5 所示的布局文件。图4-5 相对布局效果 相对布局取值为其他控件 id 的属性及说明 表 4-4 相对布局取值为像素单位的属性及说明 表4-4 相对布局取值为像素单位属性相对布局取值为 boolean 值的属性及说明 表4-5 相对布局取值为boolean值属性常见布局常见布局AbsoluteLayout(绝对布局)以坐标

54、形式来指定View对象的具体位置。一般情况,不推荐使用绝对布局方式。绝对布局最大的弊端在于位置是定死的,对于不同尺寸的手机,显示效果会出现不一致的情况,甚至可能出现有些控件溢出屏幕不可见的情况。三、嵌套布局 在实现一些复杂界面时,使用某种布局并不能达到理想效果。然后使用多种布局或某类布局嵌套使用,可以根据各类布局的属性,达到理想而实现起来又简单的布局界面。从布局本身角度来看,各类子布局各理解为一个子控件,多个子控件组合形成布局嵌套。【例 4.5】设计如图 4-6 所示的嵌套布局文件。图4-6 嵌套布局四、总结熟悉各种布局的常用属性复杂界面设计使用嵌套布局 第五章:高级控件 高级控件的简介与适配

55、器相关控件其他与视图相关的按件进度条与滑动块本章小结目录一、高级控件简介 通过前面章节的学习,我们学习了使用Android一些常用的基本控件,以及使用这些基本控件能够按照自己程序的需要在界面上进行排列,设计出一些简单的界面。然后要设计出一些复杂,功能强大的高级控件,如列表视图、滚动视图、进度条等。Adapter适配器 Adapter使用缘由:Adapter 控件通常包含多个格式相同的列表,对于这些列表而言,使用setText()、setTextColor()等方法将几十到几百行格式相同的内容进行简单的设置是不可取的。所以事先把要加载的内容放入到一个列表中,然后把这个列表放到 Adapter 中

56、对各项资源统一进行设置。这个存放 Adapter 控件的内容列表称为 Adapter(适配器)。Adapter 可以理解为一个显示器,它可以把复杂的数据按人们容易接受的方式进行显示。Android 提供的常用 Adapter 对象有 ArrayAdapter、SimpleAdapter、SimpleCursorAdapter、BaseAdapter 等,开发者可以根据自己的需要继承 Adapter 类自定义Adapter 的子类。二、与适配器相关控件Android提供的常用Adapter对象:类型类型 特点特点 ArrayAdapter:默认情况下只显示文本信息,如果要显示其它的控件时,一般都

57、需要重写getView()方法。通常将一个数组或集合放在ArrayAdapter中。SimpleAdapter:它可以将静态的数据关联到XML布局文件中的某个View控件上,可以将List集合中多个对象包装成多个列表项。SimpleCursorAdapter:与SimpleAdapter类似,只是用于包装Cursor提供的数据。BaseAdapter:一般用于扩展,扩展BaseAdapter可以对各列表项进行最大限度的定制。表5-1 各类适配器特点AutoCompleteTextViewAutoCompleteTextView 根据用户输入的少量内容,匹配指定的数据源时,就以列表的形式展示数据

58、源中符合要求的数据内容供用户选择,减少用户的输入内容。常用属性常用属性 含义含义android:completionThreshold设置弹出的列表中的最小字符个数,即用户要至少输入多少个字在匹配数据源时才能弹出列表,默认是2。android:completionHint设置下拉列表下面的说明性文字。android:dropDownHeight设置下拉列表高度。android:dropDownWidth设置下拉列表宽度。android:popupBackground设置下拉列表的背景。android:dropDownSelector设置下拉列表被选中的行的背景。android:dropDown

59、HorizontalOffset设置下拉列表与文本框之间的水平偏移像素,默认下拉列表与文本框左对齐。android:dropDownVerticalOffset设置下拉列表与文本框之间的垂直偏移像素,默认下拉列表是紧跟着文本框的。表5-2 AutoCompleteTextView常用属性【例 5.1】设计如图 5-1 所示的显示效果。说明:在下拉列表的文本框中输入一个“贺”字,弹出所有开头为“贺”的选项。图5-1 AutoCompleteTextView效果 Spinner Spinner(下拉列表)位于android.widget包下,类似于网页中常见的下拉列表框,它主要提供一系列可供用户选

60、择的列表项,可以减少用户输入而找到想要的结果。它的用法与AutoCompleteTextView非常相似,都需要指定一个数据源。Spinner有两种数据源方式:在代码中使用数组或集合来形成数据源。使用XML文件中来形成数据源,然后为Spinner指定android:entries属性即可,不需要编写代码直接完成下拉列表的功能。Spinner常用方法说明 方方 法法 说明说明setPrompt(String)设置下拉列表的提示信息setSelection(int,boolean)设 置 S p i n n e r 在 初 始 化 自 动 调 用 一 次OnItemSelectedListener

61、()事件时的下拉项,如果禁用首次调用,使用setSelection(0,true)getSelectedItem()获取用户下拉列表时选择的数据getItemAtPosition(int)获取下拉列表中指定位置的数据表5-3 Spinner常用方法说明【例 5.2】在代码中使用数据源的下拉列表显示效果图5-2 Spinner效果1图5-3 Spinner效果2ListViewListView1.使用当前的Activity直接继承ListActivity,它有一个自带的ListView部分方法的Activity,在ListView控件实例化时不再需要使用findViewById方法,而是直接使用

62、getListView方法来对ListView进行接下来的操作。在获取ListView时,布局文件中的ListView的id必须为“andriod:id/list”。其实现比较简单,在此不再详细介绍。2.使用布局文件添加一个ListView实现ListView的效果有两种形式:让当前的Activity直接继承ListActivity;在布局文件中添加一个ListView,然后为ListView设置需要显示的内容(Adapter)。ListViewListView常用属性常用属性ListView 以列表的形式显示数据内容,并且可以根据数据的长度自适应屏幕来显示,ListView 的常用属性,如表

63、 5-7 所示。属属 性性 说说 明明android:divider设置分割线android:dividerHeight设置分割线高度android:listSelector设置ListView item选中时的颜色android:scrollbars设置ListView的滚动条android:fadeScrollbars设置为true实现滚动条的自动隐藏和显示表5-4 ListView常用属性ListViewListView、AdapterAdapter与与Data SourceData Source三者关系三者关系 ListView是显示内容的地方,Adapter规定显示内容的样式,Dat

64、aSource提供数据源。减少了编写复杂显示样式的代码。图5-4 ListView、Adapter与Data Source三者关系使用布局文件添加一个 ListView【例 5.3】显示贺州各个地区的地名,设计如图 5-5 所示,使用 ArrayAdapter 实现显示效果。【例 5.4】设计如图 5-6,图5-7 所示的贺州旅游新闻列表。使用 BaseAdapter 实现显示效果。图5-5 ListView效果图5-6新闻列表效果图5-7新闻点击效果GridViewGridView是一个可以提供让人选择的二维选项网格,程序员可以控件网格列的宽度与数量;行的数量是基于适配器提供的选项数,在保证

65、有效显示的条件下动态确定。【例 5.5】设计点击各个图片可以看到放大的图。GridView常用属性:属属 性性 说说 明明android:numColumn设置GridView的列数android:columnWidth设置GridView的列宽度android:stretchMode设置GridView的缩放模式android:verticalSpacing设置两行之间的间距android:horizontalSpacing设置两列之间的间距表5-5 GridView常用属性三、其他与视图相关的按件ScrollView ScrollView是一种可供用户滚动的层次结构布局容器,允许显示比实际

66、多的内容。ScrollView继承自FrameLayout,是一种帧布局,意味需要在其上放置有自己滚动内容的子元素。子元素可以是一个复杂对象的布局管理器。通常用的子元素是垂直方向的LinearLayout,显示在最上层的垂直方向可以让用户滚动的箭头。TabHost TabHost继承自FrameLayout,是一种帧布局。它是选项卡的封装类,用于创建选项卡窗口。使用TabHost时,Activity界面的一部分是选项卡,点击选项卡就会切换到视图的另一部分并显示其它内容。使用TabHost要注意的几个地方:XML文件中使用TabWidget时,它的android:id要设置为android:id/tabs。如果使用TabActivity,必须把TabHost的android:id要设置为android:id/tabhost。如果不使用TabActivity,那么在Java代码中要调用TabHost的addTab()方法之前先调用setUp()方法。在构建选项卡视图时,要用到以下几个控件:TabHost用于容纳选项卡按钮和选项卡内容。TabWidget用于容纳选项卡按钮,每个按钮由文本及可

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!