描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302467274丛书名: “在实践中成长”丛书
书中所有代码基于Android 5.0版本,且均在Android Studio开发环境下进行调试和运行; 内容涉及Android 5.0、Android 6.0和Android 7.0版本新特性以及Android Studio环境常用配置和程序签名。
本书重点突出,强调动手操作能力,以一个项目贯穿所有章节的任务实现,使得读者能够快速理解并掌握各项重点知识,全面提高分析问题、解决问题以及动手编码的能力。
本书适用面广,可作为高校、培训机构的Android教材,适合作为计算机科学与技术、软件外包、计算机软件、计算机网络、电子商务等专业的程序设计课程的教材。
目录
第1章Android概述
1.1Android简史
1.2Android系统
1.2.1Android系统架构
1.2.2Android应用程序组件
1.3Android开发环境搭建
1.3.1下载并安装JDK
1.3.2下载并安装Android
Studio
1.4Hello Android程序
1.4.1个Android项目
1.4.2Android程序结构
1.5贯穿任务实现
1.5.1实现【任务1-1】
1.5.2实现【任务1-2】
1.5.3实现【任务1-3】
本章总结
Q&A
章节练习
习题
上机
第2章Activity和Application
2.1Activity
2.1.1Activity简介
2.1.2创建Activity
2.1.3Activity的生命周期
2.2资源管理
2.2.1资源分类
2.2.2资源访问方式
2.2.3strings.xml文本资源文件
2.2.4colors.xml颜色设置资源文件
2.2.5dimens.xml尺寸定义资源文件
2.2.6styles.xml主题风格资源文件
2.2.7drawable图像资源目录
2.3AndroidManifest.xml清单文件
2.4Android应用程序生命周期
2.5Application类
2.5.1Application生命周期事件
2.5.2实现Application
2.6样式和主题
2.7贯穿任务实现
2.7.1实现【任务2-1】
2.7.2实现【任务2-2】
2.7.3实现【任务2-3】
2.7.4实现【任务2-4】
本章总结
小结
Q&A
章节练习
习题
上机练习
第3章UI编程基础
3.1Android UI元素
3.1.1视图
3.1.2视图容器
3.1.3布局管理
3.1.4Fragment
3.2界面布局
3.2.1线性布局
3.2.2表格布局
3.2.3相对布局
3.2.4布局
3.3事件处理
3.3.1基于监听的事件处理
3.3.2基于回调机制的事件处理
3.4Widget简单组件
3.4.1Widget组件通用属性
3.4.2TextView文本框
3.4.3EditText编辑框
3.4.4Button按钮
3.4.5单选按钮和单选按钮组
3.4.6CheckBox复选框
3.4.7开关控件
3.4.8图片视图(ImageView)
3.5Dialog对话框
3.5.1AlertDialog提示对话框
3.5.2ProgressDialog进度对话框
3.6贯穿任务实现
3.6.1实现【任务3-1】
3.6.2实现【任务3-2】
3.6.3实现【任务3-3】
本章总结
小结
Q&A
章节练习
习题
上机
第4章UI进阶
4.1Fragment
4.1.1使用Fragment
4.1.2Fragment的生命周期
4.2Menu和Toolbar
4.2.1Menu菜单
4.2.2Toolbar操作栏
4.3高级组件
4.3.1AdapterView与Adapter
4.3.2ListView列表视图
4.3.3GridView网格视图
4.3.4TabHost
4.3.5WebView
4.4贯穿任务实现
4.4.1实现【任务4-1】
4.4.2实现【任务4-2】
4.4.3实现【任务4-3】
4.4.4实现【任务4-4】
4.4.5实现【任务4-5】
4.4.6实现【任务4-6】
本章总结
小结
Q&A
章节练习
习题
上机
第5章Intent与BroadcastReceiver
5.1Intent意图
5.1.1Intent原理及分类
5.1.2Intent属性
5.1.3使用Intent启动Activity
5.1.4Intent Filter过滤器
5.2BroadcastReceiver
5.3Handler消息传递机制
5.3.1Handler简介
5.3.2Handler的工作机制
5.4AsyncTask类
5.5贯穿任务实现
5.5.1实现【任务5-1】
5.5.2实现【任务5-2】
5.5.3实现【任务5-3】
本章总结
小结
Q&A
章节练习
习题
上机
第6章数据存储
6.1数据存储简介
6.2文件存储
6.2.1I/O流操作文件
6.2.2读写SD卡文件
6.2.3文件浏览器
6.3使用SharedPreferences
6.3.1SharedPreferences和SharedPreferences.Editor接口
6.3.2SharedPreferences操作步骤
6.4SQLite数据库
6.4.1SQLite简介
6.4.2SQLiteDatabase类
6.4.3SQLite数据库的创建和删除
6.4.4表的创建和删除
6.4.5记录的插入、修改和删除
6.4.6数据查询与Cursor接口
6.4.7事务处理
6.4.8SQLiteOpenHelper类
6.4.9使用ListView滑动分页
本章总结
小结
Q&A
章节练习
习题
上机
第7章ContentProvider数据共享
7.1ContentProvider简介
7.1.1ContentProvider类
7.1.2ContentResolver类
7.2开发ContentProvider程序
7.2.1编写ContentProvider子类
7.2.2注册ContentProvider
7.2.3使用ContentProvider
7.3操作系统的ContentProvider
7.3.1管理联系人
7.3.2管理多媒体
本章总结
小结
Q&A
章节练习
习题
上机
第8章Service服务
8.1Service简介
8.1.1Service分类
8.1.2Service基本示例
8.2Service详解
8.2.1Start方式启动Service
8.2.2Bind方式启动Service
8.2.3混合方式的Service
8.2.4前台Service
8.2.5Service中执行耗时任务
8.2.6远程Service
8.3系统自带Service
8.3.1NotificationManager
8.3.2DownloadManager
本章总结
小结
Q&A
章节练习
习题
上机
第9章网络编程
9.1网络编程简介
9.2基于TCP协议的网络通信
9.2.1Socket
9.2.2ServerSocket
9.3使用HttpURLConnection
9.3.1URL和URLConnection
9.3.2HttpURLConnection
9.4使用HttpClient
9.5使用WebView视图浏览网页
9.6Volley框架
本章总结
小结
Q&A
章节练习
习题
上机
附录AAndroid版本新特性
A.1Android 5.0新特性
A.2Android 6.0新特性
A.3Android 7.0新特性
附录B常用的Android Studio选项设置
B.1Android Studio基本配置
B.2Android Studio快捷键
B.3Android Studio导入Eclipse ADT项目
B.3.1步骤
B.3.2常见问题
附录CAndroid应用程序签名
C.1DOS命令完成apk签名
C.2在Android Studio中完成apk签名
本章任务是完成“GIFTEMS礼记”的主界面及功能Activity: 【任务31】编写主界面Activity。 【任务32】编写各个业务Activity的父类BaseActivity。 【任务33】编写“GIFTEMS礼记”的辅助功能对应的Activity。
本章目标
知识点Listen(听)Know(懂)Do(做)Revise(复习)Master(精通)
UI元素★★
页面布局★★★★★
续表
知识点Listen(听)Know(懂)Do(做)Revise(复习)Master(精通)
事件处理★★★★
Widget简单组件★★★★★Dialog使用★★★★
3.1Android UI元素
用户界面(User Interface,UI)设计是指对软件人机交互、操作逻辑、界面美观的整体设计。良好的UI设计不仅让软件变得更加人性化,还让软件的操作变得舒适、简单、自由,充分体现了软件的定位和特点。Android借鉴了Java中的UI设计思想,包括事件响应机制和布局管理,提供了丰富的可视化用户界面组件,例如菜单、对话框、按钮和文本框等。Android中界面元素主要由以下几个部分构成。●视图(View): 视图是所有可视界面元素(通常称为控件或小组件)的基类,所有UI控件都是由View类派生而来的。●视图容器(ViewGroup): 视图容器是视图类的扩展,其中包含多个子视图。通过扩展ViewGroup类,可以创建由多个相互连接的子视图所组成的复合控件,还可以创建布局管理器,从而实现Activity中的布局。●布局管理(Layout): 布局管理器是由ViewGroup派生而来,用于管理组件的布局格式,组织界面中组件的呈现方式。●Activity: 用于为用户呈现窗口或屏幕,当程序需要显示一个UI界面时,需要为Activity分配一个视图(通常是一个布局或Fragment)。●Fragment: Fragment是Android 3.0引入的新API,代表了Activity的子模块,即Activity片段(Fragment本身就是片段的意思)。Fragment可用于UI的各个部分,特别适合针对不同屏幕尺寸,优化UI布局以及创建可重用的UI元素。每个Fragment都包含自己的UI布局,并接收相应的输入事件,但使用时必须与Activity紧密绑定在一起(Fragment必须嵌入到Activity中)。因此,一个复杂的Android界面设计往往需要不同的组件组合才能实现,有时需要对这些标准视图进行扩展或者修改,从而提供更好的用户体验。3.1.1视图View视图组件是用户界面的基础元素,View对象是Android屏幕上一个特定的矩形区域的布局和内容属性的数据载体,通过View对象可实现布局、绘图、焦点变换、滚动条、屏幕区域的按键、用户交互等功能。Android应用的绝大部分UI组件都放在android.widget包及其子包中,所有这些UI组件都继承了View类。View的常见子类及功能如表31所示,本章将对这些View组件进行重点讲解。
表31View类的主要子类
类名功 能 描 述类名功 能 描 述
TextView文本视图DigitalClock数字时钟EditText编辑文本框AnalogClock模拟时钟Button按钮ProgessBar进度条Checkbox复选框RatingBar评分条RadioGroup单选按钮组SeekBar搜索条Spinner下拉列表GridView网格视图AutoCompleteTextView自动完成文本框ListView列表视图DataPicker日期选择器ScrollView滚动视图TimePicker时间选择器
3.1.2视图容器View类还有一个非常重要的ViewGroup子类,该类通常作为其他组件的容器使用。View组件可以添加到ViewGroup中,也可以将一个ViewGroup添加到另一个ViewGroup中。Android中的所有UI组件都是建立在View、ViewGroup基础之上,Android采用了“组合器”模式来设计View和ViewGroup; 其中ViewGroup是View的子类,因此ViewGroup可以当成View来使用。对于一个Android应用的图形UI而言,ViewGroup又可以作为容器来盛装其他组件; ViewGroup不仅可以包含普通的View组件,还可以包含其他ViewGroup组件。Android图形UI的组件层次如图31所示。
图31UI组件层次图
注意图31来自Android开发文档,对于每个Android程序员而言,Android提供的官方文档需要仔细阅读。
ViewGroup类提供的主要方法如表32所示。
表32ViewGroup类的方法功能
方法功 能 描 述
ViewGroup()构造方法void addView(View child)用于添加子视图,以View作为参数,将该View增加到当前视图组中
续表
方法功 能 描 述
removeView(View view)将指定的View从视图组中移除updateViewLayout(View view, ViewGroup.LayoutParams params)用于更新某个View的布局void bringChildToFront(View child)将参数所指定的视图移动到所有视图之前显示boolean clearChildFocus(View child)清除参数所指定的视图的焦点boolean dispatchKeyEvent(KeyEvent event)将参数所指定的键盘事件分发给当前焦点路径的视图。当分发事件时,按照焦点路径来查找合适的视图。若本视图为焦点,则将键盘事件发送给自己; 否则发送给焦点视图boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event)将参数所指定的事件分发给当前焦点路径的视图boolean dispatchSetSelected(boolean selected)为所有的子视图调用setSelected()方法
注意ViewGroup继承了View类,虽然可以当成普通的View来使用,但习惯上将ViewGroup当容器来使用。由于ViewGroup是一个抽象类,在实际应用中通常使用ViewGroup的子类作为容器,例如各种布局管理器。
1.ViewGroup继承结构ViewGroup的继承者大部分位于android.widget包中,其直接子类包括AdapterView、AbsoluteLayout、FrameLayout、LinearLayout和RelativeLayout等类。以上直接子类又分别具有子类,ViewGroup继承者的体系结构如图32所示。
图32ViewGroup继承者的体系结构
如图32所示,ViewGroup直接子类均可作为容器来使用,这些类为子类提供不同的布局方法,用于设置子类之间的位置和尺寸关系。ViewGroup类的间接子类中,有些不能作为容器来使用,仅能当作普通的组件来使用。2. 布局参数类在Android布局文件中,每个组件所能使用的XML属性有以下三类: 组件本身的XML属性、组件祖先类的XML属性、组件所属容器的布局参数。其中,布局参数是包含该组件的容器(例如ViewGroup子类)所提供的参数。在Android中,ViewGroup子类都有一个相应的{XXX}.LayoutParams静态子类,用于设置子类所使用的布局方式。这些子类继承关系和ViewGroup子类的继承关系具有相似性。ViewGroup容器使用ViewGroup.LayoutParams和ViewGroup.MarginLayoutParams两个内部类来控制子组件在其中的分布位置,这两个内部类中都提供了一些XML属性,ViewGroup容器中的子组件通过指定XML属性来控制组件的位置,如表33所示。
表33ViewGroup子元素支持的属性
XML属性功 能 描 述
android:layout_width设定该组件的子组件布局的宽度android:layout_height设定该组件的子组件布局的高度
android:layout_height和android:layout_width属性都支持以下三个属性值: (1) fill_parent属性用于指定子组件的高度、宽度与父容器的高度、宽度相同; (2) match_parent与fill_parent的功能完全相同,从Android 2.2开始推荐使用该属性值来代替fill_parent; (3) wrap_content属性用于指定子组件的大小恰好能包裹其内容即可。
注意在实际应用中,除了为组件指定高度、宽度,还需要设置布局的高度、宽度,这是由Android的布局机制决定的。Android组件的大小不仅由实际的宽度、高度控制,还由布局的高度、宽度控制。例如一个组件的宽度为30px,如果将其布局宽度设置为match_parent,那么该组件的宽度将会被“拉宽”并占满其所在的父容器; 如果将其布局宽度设为wrap_content,那么该组件的宽度才会是30px。
ViewGroup.MarginLayoutParams用于控制子组件周围的页边距(即组件四周的留白),所支持的XML属性如表34所示。
表34MarginLayoutParams支持的属性
XML属性功 能 描 述
评论
还没有评论。