第 1章 Android入门 1
1.1 Android的起源和发展 2
1.1.1 Android的起源 2
1.1.2 Android平台架构 2
1.2 Android开发环境搭建 3
1.2.1 Android Studio的安装 3
1.2.2 Gradle文件介绍和常用设置 5
1.2.3 模拟器的创建和使用 7
1.3 本章小结 9
第 2章 Android界面开发 10
2.1 视图组件与视图容器 11
2.2 常用布局 12
2.2.1 线性布局 12
案例2.1 使用线性布局 13
案例2.2 使用嵌套的线性布局 15
2.2.2 相对布局 17
案例2.3 使用相对布局 17
2.2.3 列表视图 20
案例2.4 通过数组资源文件填充数据 21
案例2.5 通过Adapter填充数据 22
案例2.6 通过自定义Adapter填充数据,显示学生考试信息 22
2.2.4 网格视图 26
案例2.7 以网格的形式排列显示1~9个数字 27
2.3 常用控件 30
2.3.1 文本框和编辑框 30
案例2.8 显示不同颜色、大小和不同位置的文字 31
案例2.9 文字超长时的处理 32
案例2.10 将指定格式的文本转化为可单击的链接 34
2.3.2 按钮 36
案例2.11 切换“Hello”和
“World”的显示 36
2.3.3 单选按钮和复选框 38
案例2.12 选择性别与爱好 38
2.3.4 图片控件 42
案例2.13 图片尺寸大于ImageView控件尺寸的大小 43
2.3.5 进度条和拖动条 47
案例2.14 使用进度条 47
案例2.15 使用拖动条 49
2.4 对话框 51
2.4.1 简单对话框 51
案例2.16 使用简单对话框 52
2.4.2 列表对话框 53
案例2.17 使用列表对话框选择语言 53
2.4.3 自定义对话框 55
案例2.18 使用自定义对话框制作登录页面 55
2.5 菜单 57
2.5.1 选项菜单 57
案例2.19 制作“添加”“删除”“查询”和“退出”选项菜单 59
2.5.2 上下文菜单 61
案例2.20 制作“添加”“删除”“查询”和“退出”上下文菜单 61
2.6 常用资源类型 63
2.6.1 资源的类型和使用 63
2.6.2 字符串、颜色、尺寸 65
案例2.21 字符串、颜色、
尺寸的具体定义和使用 66
2.6.3 Drawable 67
案例2.22 使用图片资源 67
案例2.23 使用State List制作按钮按下变色效果 69
案例2.24 使用Shape Drawable制作圆角矩形的编辑框 70
2.6.4 Style 72
案例2.25 使用Style统一设置文字的大小和颜色 72
2.6.5 国际化 73
案例2.26 制作同样的按钮在不同的语言环境下的显示效果 74
2.7 事件处理和消息传递 75
2.7.1 基于监听的事件处理 75
2.7.2 基于回调的事件处理 75
案例2.27 基于回调事件的处理 76
2.7.3 Handler消息传递 76
案例2.28 基于回调事件的处理 77
2.8 本章小结 78
第3章 Activity 79
3.1 Activity的使用 80
3.2 Activity之间的跳转 80
案例3.1 用startActivity方法实现跳转 81
案例3.2 用startActivity-ForResult方法实现登录效果 83
3.3 Activity的生命周期 85
3.4 Activity的启动模式 89
3.5 本章小结 90
3.6 小练习 90
第4章 Intent和BroadCast-Receiver 97
4.1 Intent和intent-filter配置 98
案例4.1 通过action启动activity 98
4.2 BroadCastRecevier 101
4.2.1 广播机制介绍 101
4.2.2 静态注册 101
案例4.2 BroadCastReceiver的使用 102
4.2.3 动态注册 103
案例4.3 动态注册广播 104
4.2.4 系统广播介绍 105
案例4.4 通过接收系统广播提示用户充电 105
4.3 本章小结 106
第5章 数据存储 107
5.1 SharedPreferences 108
5.1.1 SharedPreferences与Editor简介 108
5.1.2 SharedPreferences存储的位置和格式 108
案例5.1 使用SharedPreferences存储数据 108
5.2 File存储 110
5.2.1 读写内部存储 111
案例5.2 使用内部存储 111
5.2.2 读写外部存储 113
5.3 SQLite数据库 114
5.3.1 SQLiteDatabase简介 114
5.3.2 创建数据库和表 115
案例5.3 创建表,存储学生考试成绩 115
5.3.3 操作SQLite常用类 116
案例5.4 访问SQLite数据库,修改学生成绩表 116
5.3.4 事务 121
5.4 本章小结 122
5.5 小练习 123
第6章 ContentProvider 129
6.1 ContentProvider和URI简介 130
6.2 创建ContentProvider 131
案例6.1 创建Content
Provider,对外提供学生信息 131
6.3 使用ContentResovler操作数据 136
案例6.2 使用ContentResovler添加、查询联系人 136
6.4 本章小结 138
6.5 小练习 139
第7章 Service 143
7.1 Service简介 144
7.1.1 创建、配置Service 144
7.1.2 启动和停止Service 145
案例7.1 启动和停止Service 145
7.1.3 绑定Service 147
案例7.2 绑定和解绑Service 148
7.2 Service的生命周期 152
7.3 跨进程调用Service 152
7.3.1 创建Service和AIDL接口 152
7.3.2 跨进程绑定Service 154
7.4 本章小结 157
7.5 小练习 157
第8章 高级编程 161
8.1 网络编程 162
8.1.1 TCP、UDP协议基础 162
8.1.2 Socket通信 162
案例8.1 实现网络通信 163
8.1.3 下载网络资源 166
案例8.2 下载网络图片 166
8.2 图形图像和动画 167
8.2.1 Bitmap和BitmapFactory 167
8.2.2 Android绘图基础 168
案例8.3 使用线性布局 169
8.2.3 补间动画 171
案例8.4 使用补间动画 171
8.2.4 属性动画 173
案例8.5 使用属性动画 173
8.3 多媒体应用开发 175
8.3.1 MediaPlayer类介绍 175
8.3.2 使用MediaPlayer和SurfaceView播放视频 176
案例8.6 使用MediaPlayer和SurfaceView播放视频 176
8.4 线程开发 180
8.4.1 AsyncTask及其使用 180
8.4.2 ThreadPoolExecutor介绍 181
8.5 Fragment 182
8.5.1 Fragment的创建 183
案例8.7 单击底部按钮,上面内容区域动态改变 184
8.5.2 Fragment的生命周期 189
案例8.8 通过日志打印看Fragment生命周期方法的回调顺序 190
8.6 RecyclerView 194
8.6.1 RecyclerView相关类 194
8.6.2 RecyclerView的使用 194
案例8.9 使用RecyclerView 195
8.7 本章小结 198
第9章 综合实战 199
9.1 视频播放器 200
9.1.1 界面布局 200
9.1.2 初始化 202
9.1.3 播控和进度控制 206
9.1.4 横屏设置 209
9.2 本章小结 210