第1章 走进Android 1
1.1 Android简介 1
1.1.1 智能手机操作系统 1
1.1.2 Android大事记 2
1.1.3 Android特征 3
1.1.4 Android系统架构 4
1.1.5 Android应用领域 5
1.2 搭建Android开发环境 6
1.2.1 开发环境概述 6
1.2.2 JDK的下载 7
1.2.3 JDK的安装与配置 10
1.2.4 集成Android开发环境的下载与安装 13
第2章 第一个Android应用 24
2.1 创建Android应用程序 24
2.2 Android项目结构 27
2.2.1 manifests节点 28
2.2.2 java节点 29
2.2.3 res节点 30
2.3 使用Android模拟器 33
2.3.1 创建AVD并启动Android模拟器 33
2.3.2 Android模拟器的基本配置 37
2.4 运行Android应用 40
2.4.1 使用模拟器运行Android应用 40
2.4.2 连接手机运行Android应用 41
第3章 用户界面设计基础 45
3.1 UI设计相关的概念 45
3.1.1 View 45
3.1.2 ViewGroup 46
3.2 控制UI界面 48
3.2.1 使用XML布局文件控制UI界面 48
3.2.2 在Java代码中控制UI界面 51
3.2.3 使用XML和Java代码混合控制UI界面 53
3.2.4 开发自定义的View 54
3.3 布局管理器 57
3.3.1 相对布局管理器 58
3.3.2 线性布局管理器 60
3.3.3 帧布局管理器 64
3.3.4 表格布局管理器 66
3.3.5 网格布局管理器 69
3.3.6 布局管理器的嵌套 72
第4章 基本UI组件 75
4.1 文本类组件 75
4.1.1 文本框 75
4.1.2 编辑框 80
4.2 按钮类组件 82
4.2.1 普通按钮 83
4.2.2 图片按钮 87
4.2.3 单选按钮 90
4.2.4 复选框 95
4.3 日期时间类组件 99
4.3.1 日期选择器 99
4.3.2 时间选择器 101
4.3.3 计时器 102
第5章 高级UI组件 105
5.1 进度条类组件 105
5.1.1 进度条 105
5.1.2 拖动条 109
5.1.3 星级评分条 112
5.2 图像类组件 115
5.2.1 图像视图 116
5.2.2 图像切换器 120
5.2.3 网格视图 124
5.3 列表类组件 127
5.3.1 下拉列表框 128
5.3.2 列表视图 131
5.4 通用组件 136
5.4.1 滚动视图 136
5.4.2 选项卡 140
第6章 基本程序单元Activity 144
6.1 Activity概述 144
6.2 创建、配置、启动和关闭Activity 146
6.2.1 创建Activity 146
6.2.2 配置Activity 146
6.2.3 启动和关闭Activity 148
6.3 多个Activity的使用 151
6.3.1 使用Bundle在Activity之间交换数据 151
6.3.2 调用另一个Activity并返回结果 154
6.4 使用Fragment 158
6.4.1 Fragment的生命周期 159
6.4.2 创建Fragment 160
6.4.3 在Activity中添加Fragment 160
第7章 Android应用核心Intent 165
7.1 初识Intent 165
7.1.1 Intent概述 165
7.1.2 Intent的基本应用 166
7.2 Intent对象的属性 167
7.2.1 Component name(组件名称) 167
7.2.2 Action(动作) 169
7.2.3 Data(数据) 172
7.2.4 Category(种类) 175
7.2.5 Extras(附加信息) 177
7.2.6 Flags(标志) 178
7.3 Intent种类 180
7.3.1 显式Intent 180
7.3.2 隐式Intent 181
7.4 Intent过滤器 182
7.4.1 配置<action>标记 182
7.4.2 配置<data>标记 183
7.4.3 配置<category>标记 183
第8章 Android程序调试 187
8.1 DDMS工具使用 187
8.1.1 打开DDMS 187
8.1.2 DDMS常用功能详解 187
8.2 输出日志信息 192
8.2.1 Log.e()方法 193
8.2.2 Log.w()方法 193
8.2.3 Log.i()方法 193
8.2.4 Log.d()方法 193
8.2.5 Log.v()方法 194
8.3 程序调试 195
8.3.1 Android Studio编辑器调试 195
8.3.2 Android Studio调试器调试 196
第9章 Android事件处理和手势 200
9.1 事件处理概述 200
9.1.1 基于监听的事件处理 200
9.1.2 基于回调的事件处理 201
9.2 物理按键事件处理 201
9.3 触摸屏事件处理 204
9.3.1 单击事件 204
9.3.2 长按事件 205
9.3.3 触摸事件 206
9.3.4 单击事件与触摸事件的区别 208
9.4 手势 209
9.4.1 手势检测 209
9.4.2 手势添加 211
第10章 Android应用的资源 215
10.1 字符串资源 215
10.1.1 定义字符串资源文件 215
10.1.2 使用字符串资源 216
10.2 颜色资源 217
10.2.1 颜色值的定义 217
10.2.2 定义颜色资源文件 217
10.2.3 使用颜色资源 219
10.3 尺寸资源 219
10.3.1 Android支持的尺寸单位 219
10.3.2 定义尺寸资源文件 220
10.3.3 使用尺寸资源 220
10.4 布局资源 222
10.5 数组资源 223
10.5.1 定义数组资源文件 223
10.5.2 使用数组资源 223
10.6 图像资源 225
10.6.1 Drawable资源 225
10.6.2 mipmap资源 230
10.7 主题和样式资源 231
10.7.1 主题资源 231
10.7.2 样式资源 233
10.8 菜单资源 235
10.8.1 定义菜单资源文件 235
10.8.2 使用菜单资源 236
10.9 Android程序国际化 241
第11章 Action Bar的使用 244
11.1 Action Bar概述 244
11.2 Action Bar基本应用 245
11.2.1 显示和隐藏Action Bar 245
11.2.2 添加ActionItem选项 247
11.2.3 添加ActionView 249
11.2.4 Action Bar与Tab 251
11.3 实现层级式导航 254
11.3.1 启用程序图标导航 255
11.3.2 配置 Activity 255
11.3.3 控制导航图标的显示 255
第12章 消息、通知、广播与闹钟 258
12.1 通过Toast显示消息提示框 258
12.2 使用AlertDialog实现对话框 259
12.3 使用Notification在状态栏上显示通知 265
12.4 使用BroadcastReceiver发送和接收广播 268
12.4.1 BroadcastReceiver简介 268
12.4.2 BroadcastReceiver应用 270
12.5 使用AlarmManager设置闹钟 272
12.5.1 AlarmManager简介 272
12.5.2 设置一个简单的闹钟 273
第13章 图形图像处理技术 276
13.1 常用绘图类 276
13.1.1 Paint类 276
13.1.2 Canvas类 278
13.1.3 Path类 279
13.1.4 Bitmap类 280
13.1.5 BitmapFactory类 280
13.2 绘制2D图像 281
13.2.1 绘制几何图形 281
13.2.2 绘制文本 283
13.2.3 绘制图片 284
13.2.4 绘制路径 286
13.3 Android中的动画 290
13.3.1 实现逐帧动画 290
13.3.2 实现补间动画 292
第14章 多媒体应用开发 299
14.1 播放音频与视频 299
14.1.1 使用MediaPlayer播放音频 299
14.1.2 使用SoundPool播放音频 303
14.1.3 使用VideoView播放视频 306
14.1.4 使用MediaPlayer和SurfaceView播放视频 308
14.2 控制摄像头 312
14.2.1 拍照 312
14.2.2 录制视频 315
14.3 本章总结 320
第15章 数据存储技术 321
15.1 SharedPreferences存储 321
15.1.1 获得SharedPreferences对象 322
15.1.2 向SharedPreferences文件存储数据 322
15.1.3 读取SharedPreferences文件中存储的数据 323
15.2 文件存储 325
15.2.1 内部存储 326
15.2.2 外部存储 329
15.3 数据库存储 331
15.3.1 sqlite3工具的使用 331
15.3.2 使用代码操作数据库 333
15.4 使用Content Provider实现数据共享 340
15.4.1 ContentProvider概述 340
15.4.2 创建Content Provider 341
15.4.3 使用Content Provider 344
15.5 本章总结 347
第16章 Handler消息处理 348
16.1 Handler消息传递机制 348
16.1.1 Handler类简介 350
16.1.2 Handler类中的常用方法 350
16.2 Handler与Looper、MessageQueue的关系 352
16.3 消息类(Message) 353
16.4 循环者(Looper) 355
16.5 本章总结 357
第17章 Service应用 358
17.1 Service概述 358
17.1.1 Service的分类 359
17.1.2 Service的生命周期 359
17.2 Service的基本用法 360
17.2.1 创建与配置Service 361
17.2.2 启动和停止Service 364
17.3 Bound Service 367
17.4 使用IntentService 369
第18章 传感器应用 371
18.1 Android传感器概述 371
18.1.1 Android的常用传感器 372
18.1.2 开发步骤 373
18.2 磁场传感器 377
18.3 加速度传感器 379
18.4 方向传感器 381
18.5 本章总结 385
第19章 位置服务与地图应用 386
19.1 位置服务 386
19.1.1 获取LocationProvider 388
19.1.2 获取定位信息 391
19.2 百度地图服务 394
19.2.1 获得地图API密钥 394
19.2.2 下载SDK开发包 399
19.2.3 新建使用百度地图API的Android项目 400
19.2.4 定位到“我的位置” 403
19.3 本章总结 406
第20章 网络编程及Internet应用 407
20.1 通过HTTP访问网络 407
20.1.1 发送GET请求 408
20.1.2 发送POST请求 411
20.2 解析JSON格式数据 415
20.2.1 JSON简介 415
20.2.2 解析JSON数据 416
20.3 使用WebView显示网页 418
20.3.1 使用WebView组件浏览网页 419
20.3.2 使用WebView加载HTML代码 421
20.3.3 让WebView支持JavaScript 423
20.4 本章总结 425
第21章 欢乐写数字 426
21.1 开发背景 426
21.2 系统功能设计 426
21.2.1 系统功能结构 426
21.2.2 业务流程图 427
21.3 创建项目 427
21.3.1 系统开发环境要求 427
21.3.2 系统文件夹组织结构 427
21.3.3 创建新项目 428
21.4 启动界面设计 431
21.4.1 启动界面布局 432
21.4.2 实现启动界面的全屏显示 437
21.4.3 启动界面向游戏主界面的跳转 440
21.5 游戏主界面设计 443
21.5.1 游戏主界面布局 443
21.5.2 实现游戏主界面全屏显示 448
21.5.3 游戏主界面向选择数字界面的跳转 449
21.5.4 游戏主界面向关于界面的跳转 450
21.5.5 启动后自动播放背景音乐 452
21.5.6 游戏背景音乐的开启与静音 453
21.5.7 跳转界面时自动停止音乐 454
21.5.8 返回游戏主界面时自动播放音乐 455
21.6 选择数字界面设计 456
21.6.1 选择数字界面布局 456
21.6.2 实现选择数字界面全屏显示 461
21.6.3 设置背景音乐 463
21.7 数字1书写界面设计 464
21.7.1 书写界面布局 465
21.7.2 打开数字1的书写界面 467
21.7.3 设置背景及默认图片 471
21.7.4 实现数字1的书写功能 476
21.7.5 实现书写过程中断时图片倒退显示 479
21.7.6 播放数字儿歌 482
21.8 演示动画对话框设计 483
21.8.1 创建演示动画布局文件 483
21.8.2 创建演示逐帧动画文件 484
21.8.3 创建自定义对话框 486
21.8.4 播放演示动画 488
21.9 关于界面设计 490
21.9.1 完成关于界面按钮和Logo的布局 490
21.9.2 布局联系方式和版权 492
21.9.3 实现关于界面全屏显示 494
21.9.4 返回上一级界面 495
21.10 本章总结 496
第22章 锁屏背单词 497
22.1 开发背景 497
22.2 系统功能设计 497
22.2.1 系统功能结构 497
22.2.2 业务流程图 497
22.3 创建项目 498
22.3.1 开发环境需求 498
22.3.2 创建新项目 499
22.3.3 导入图片资源 501
22.3.4 导入数据库与语音资源 501
22.3.5 创建数据库 504
22.3.6 创建数据库解析单词的工具类 507
22.4 锁屏界面设计 508
22.4.1 绘制锁屏界面 509
22.4.2 声明控件 513
22.4.3 初始化控件 514
22.4.4 同步手机系统时间 519
22.4.5 选择词义时的操作 521
22.4.6 获取数据库文件 524
22.4.7 手势滑动事件 527
22.4.8 配置Manifest权限 529
22.5 复习界面设计 530
22.5.1 复习界面布局 530
22.5.2 实现复习界面功能 535
22.6 设置界面设计 538
22.6.1 绘制开关按钮 538
22.6.2 实现开关按钮的功能 540
22.6.3 设置界面布局 541
22.6.4 实现设置界面功能 545
22.7 主界面设计 550
22.7.1 自定义按钮样式 550
22.7.2 绘制主界面布局 551
22.7.3 创建BaseApplication对象 554
22.7.4 声明BaseApplication 554
22.7.5 锁屏状态监听 555
22.7.6 实现主界面功能 557
22.8 本章总结 561
第23章 静待花开 562
23.1 开发背景 562
23.2 系统功能设计 562
23.2.1 系统功能结构 562
23.2.2 业务流程 562
23.3 本章目标 564
23.4 开发准备 565
23.4.1 导入工具类等资源文件 565
23.4.2 创建MyDataHelper数据帮助类 565
23.5 实现大雁飞翔的效果 566
23.5.1 设置大雁的逐帧动画 567
23.5.2 实现大雁飞翔的效果 567
23.6 实现蒲公英飘落的效果 570
23.6.1 创建数据模型DandelionModel类 570
23.6.2 创建DandelionView类 571
23.6.3 初始化绘制数据 571
23.6.4 重写SurfaceHolder的回调方法 573
23.6.5 绘制降落的蒲公英 574
23.6.6 实现飘落的效果 575
23.7 实现花开的效果 576
23.7.1 创建Plant类 577
23.7.2 添加子控件 577
23.7.3 测量控件并设置宽高 579
23.7.4 摆放Plant中的子控件 581
23.7.5 设置组合动画 584
23.7.6 设置接口回调 589
23.7.7 设置用于控制动画效果的方法 589
23.7.8 静待花开 590
23.8 实现背景颜色渐变的效果 593
23.8.1 创建属性动画xml文件 593
23.8.2 设置背景渐变动画 594
23.9 其他主要功能的展示 595
23.9.1 名人名言列表 595
23.9.2 说明界面 595
23.9.3 选择要分享的花 595
23.9.4 种花界面花枯萎的效果 596
23.10 本章总结 597
第24章 悦步运动 598
24.1 开发背景 598
24.2 系统功能设计 598
24.2.1 系统功能结构 598
24.2.2 业务流程图 599
24.3 开发准备 600
24.4 计步功能的设计 602
24.4.1 运动界面概述 602
24.4.2 运动界面布局 602
24.4.3 创建SportFragment类 605
24.4.4 创建SportFragment的视图 606
24.4.5 初始化数据 607
24.4.6 初始化控件和设置控件 608
24.4.7 获取天气预报网络资源 609
24.4.8 获取计步步数 609
24.4.9 显示数据 610
24.5 计步服务功能的设计 612
24.5.1 声明变量 612
24.5.2 初始化计步服务 613
24.5.3 管理服务的生命周期 614
24.6 测试计步功能的设计 615
24.6.1 测试界面的创建和布局的设置 615
24.6.2 实现计步的功能 616
24.7 食物热量对照表设计 617
24.7.1 食物热量对照表概述 617
24.7.2 界面布局 618
24.7.3 显示数据 619
24.8 其他主要功能的展示 623
24.8.1 更改个人信息 624
24.8.2 播放热身动画 624
24.8.3 设置“我的计划” 624
24.8.4 心率测试功能 624
24.9 本章总结 625
第25章 外勤助手 626
25.1 开发背景 626
25.2 系统功能设计 626
25.2.1 系统功能结构图 626
25.2.2 业务流程图 627
25.3 系统开发必备 627
25.3.1 开发环境要求 627
25.3.2 后台服务器要求 627
25.3.3 与后台Java服务器交互的主要接口 628
25.4 导航的定位与路线规划设计 629
25.4.1 申请密钥 629
25.4.2 下载Android地图SDK 631
25.4.3 导入Jar包 632
25.4.4 绘制地图 632
25.4.5 实现定位服务 632
25.4.6 实现用户定位及路线规划 635
25.5 考勤签到模块设计 638
25.5.1 自定义签到日历控件 638
25.5.2 初始化签到数据 643
25.5.3 实现签到功能 644
25.5.4 查询签到记录 647
25.6 任务上报模块设计 648
25.6.1 任务上报模块概述 648
25.6.2 任务上报功能的实现 648
25.6.3 查询历史数据 650
25.7 业务分析模块设计 652
25.7.1 使用饼状图分析订单数据 652
25.7.2 使用线形图分析业绩排名 653
25.8 其他功能展示 655
25.8.1 客户界面拨打电话功能 655
25.8.2 添加计划功能 656
25.8.3 录音功能 657
25.8.4 记录损耗费用支出明细 657
25.9 本章总结 658
开发资源库使用说明 659