《Android实例开发完全手册》是2012年7月人民邮电出版社出版的图书,作者是陈强。
基本信息
中文名
Android实例开发完全手册
定价
99.00元
出版社
人民邮电出版社
作者
陈强
出版时间
2012-7
ISBN
9787115282842
页数
775
目录
1内容简介
2图书目录
折叠
编辑本段
内容简介
《Android实例开发完全手册》内容简介:Android凭借其开源开放性、优异的用户体验和极为方便的开发方式,赢得了广大用户和开发者的青睐,目前已经发展成为智能手机操作系统的翘楚。《Android实例开发完全手册》言简意赅、通俗易懂、实例全面并典型,几乎囊括了所有的和Android应用相关的项目。分为16个章,分别讲解了UI布局实例、控件实例、自动化服务实例、数据存储实例、电话和短信实例、图形图像实例和网络有关的实例,以及多媒体实例、Google地图实例。Google API实例、平板电脑应用开发、游戏应用、程序优化等。
《Android实例开发完全手册》适合Android程序员、研发人员及Android爱好者学习,也可以作为相关培训学校和大专院校相关专业的教学用书。
折叠
编辑本段
图书目录
第1章 正式开发前的准备 1
1.1 Windows下安装Java环境JDK 1
1.1.1 实例说明 1
1.1.2 具体实现 2
1.1.3 特别提醒--检测是否安装成功 4
1.2 在Windows环境下安装Eclipse 5
1.2.1 实例说明 5
1.2.2 具体实现 5
1.2.3 特别提醒--为Eclipse建立快捷方式 7
1.3 在Windows环境下安装Android SDK 7
1.1.1 实例说明 8
1.1.2 具体实现 8
1.3.3 特别提醒--不同的SDK版本 10
1.4 在Windows环境下安装ADT 10
1.4.1 实例说明 10
1.4.2 具体实现 10
1.4.3 特别提醒--不用担心安装过程慢 12
1.5 将Android SDK和Eclipse相关联 12
1.5.1 实例说明 12
1.5.2 具体实现 12
1.5.3 特别提醒--不关联启动SDK的方法 12
1.6 验证Android开发环境 14
1.6.1 实例说明 14
1.6.2 具体实现 14
1.6.3 特别提醒--快速运行Android的诀窍 14
1.7 使用CMD方式创建Android虚拟设备 15
1.7.1 实例说明 15
1.7.2 具体实现 16
1.7.3 特别提醒 17
1.8 使用图形界面方式创建AVD模拟器 19
1.8.1 实例说明 19
1.8.2 具体实现 19
1.8.3 特别提醒--删除/修改AVD 20
1.9 手动更新Android SDK 21
1.9.1 实例说明 22
1.9.2 具体实现 22
1.9.3 特别提醒--自定义选择安装的SDK 23
1.10 单独下载的方式来更新Android SDK 24
1.10.1 实例说明 24
1.10.2 具体实现 24
1.10.3 特别提醒--快速安装Android SDK的诀窍 25
1.11 在Linux环境下搭建Android平台 25
1.11.1 实例说明 25
1.11.2 具体实现 26
1.11.3 特别提醒 26
1.12 苹果Mac环境下搭建Android平台 27
1.12.1 实例说明 27
1.12.2 具体实现 28
1.12.3 特别提醒--都是一个原理 30
1.13 搭建过程中的常见错误 30
1.13.1 实例说明 30
1.13.2 最常见的三个错误 30
1.13.3 特别提醒--其他错误 33
1.14 第一个Android程序 34
1.14.1 实例说明 34
1.14.2 具体实现 34
1.14.3 特别提醒--解决模拟器运行时间长而引发的错误 36
1.15 向Eclipse中导入Android程序 37
1.15.1 实例说明 37
1.15.2 具体实现 37
1.15.3 特别提醒--一次向Eclipse中导入多个Android程序 38
1.16 断点调试Android程序 39
1.16.1 实例说明 39
1.16.2 具体实现 40
1.16.3 特别提醒--其他调试方法 41
第2章 界面布局 42
2.1 使用线性布局(LinearLayout) 42
2.1.1 实例说明 42
2.1.2 具体实现 42
2.1.3 特别提醒--布局类型的继承 43
2.2 使用相对布局(Relative Layout) 44
2.2.1 实例说明 44
2.2.2 具体实现 44
2.2.3 特别提醒--RelativeLayout效果结构 45
2.3 使用表格布局(TableLayout) 45
2.3.1 实例说明 46
2.3.2 具体实现 46
2.3.3 特别提醒--使用表格布局的注意事项 47
2.4 使用绝对布局(AbsoluteLayout) 47
2.4.1 实例说明 47
2.4.2 具体实现 47
2.4.3 特别提醒--为什么不推荐使用AbsoluteLayout 48
2.5 使用标签布局(TabLayout) 48
2.5.1 实例说明 48
2.5.2 具体实现 48
2.5.3 特别提醒--计算器的升级理念 50
2.6 使用层布局(FrameLayout) 50
2.6.1 实例说明 50
2.6.2 具体实现 50
2.6.3 特别提醒--层与层的覆盖 50
2.7 演示Layout布局的综合应用 51
2.7.1 实例说明 51
2.7.2 具体实现 51
2.7.3 特别提醒--设置的图片不能太大 57
2.8 创建一个桌面组件Widget 57
2.8.1 实例说明 57
2.8.2 具体实现 58
2.8.3 特别提醒--其他的实例 58
2.9 在屏幕中实现一个按钮效果 58
2.9.1 实例说明 58
2.9.2 具体实现 59
2.9.3 特别提醒--更加漂亮的按钮 60
2.10 在屏幕中显示文字 60
2.10.1 实例说明 60
2.10.2 具体实现 61
2.10.3 特别提醒--Color属性代表的颜色 63
2.11 设置手机屏幕中的字体 63
2.11.1 实例说明 63
2.11.2 具体实现 63
2.11.3 特别提醒--更改TextView文字的颜色 65
2.12 在屏幕中显示编辑框 66
2.12.1 实例说明 67
2.12.2 具体实现 67
2.12.3 特别提醒--限制文本框中文字字数 68
2.14 在屏幕中显示复选框 70
2.14.1 实例说明 70
2.14.2 具体实现 70
2.14.3 特别提醒--RadioButton(单选框)控件 71
2.15 在屏幕中显示单选框 72
2.15.1 实例说明 72
2.15.2 具体实现 72
2.15.3 特别提醒--按钮的不同状态 73
2.16 在屏幕中显示下拉列表框 74
2.16.1 实例说明 74
2.16.2 具体实现 74
2.16.3 特别提醒--Spinner的属性和方法 77
2.17 在屏幕中实现自动输入文本效果 77
2.17.1 实例说明 77
2.17.2 具体实现 77
2.17.3 特别提醒--下拉框的雾化效果 79
2.18 使用日期选择器控件DatePicker 79
2.18.1 实例说明 79
2.18.2 具体实现 79
2.18.3 特别提醒--控件DatePicker中的方法 80
2.19 使用时间选择器控件TimePicker 81
2.19.1 实例说明 81
2.19.2 具体实现 81
2.19.3 特别提醒--在屏幕中同时显示日期和时间 82
2.20 在屏幕内实现滚动效果 85
2.20.1 实例说明 85
2.20.2 具体实现 85
2.20.3 特别提醒--解决ScrollView控件中的内容不能完整显示的问题 85
2.21 在屏幕内实现进度条效果 86
2.21.1 实例说明 86
2.22.2 具体实现 87
2.22.3 特别提醒--为控件Progressbar设置样式 88
2.23 在屏幕内使用拖动条功能 89
2.23.1 实例说明 89
2.23.2 具体实现 89
2.23.3 特别提醒--在拖动条中显示提示文字 90
2.24 在屏幕内使用评分组件 90
2.24.1 实例说明 90
2.24.2 具体实现 90
2.24.3 特别提醒--使用RatingBar控件的流程 91
2.25 在屏幕内显示一副图片 92
2.25.1 实例说明 92
2.25.2 具体实现 92
2.25.3 特别提醒--制作一个相框 93
2.26 设置一副图片当作按钮 95
2.26.1 实例说明 95
2.26.2 具体实现 95
2.26.3 特别提醒--图片按钮控件的事件响应 96
2.27 实现类似QQ空间的照片效果 97
2.27.1 实例说明 97
2.27.2 具体实现 97
2.27.3 特别提醒--ImageSwitcher控件的三个方法 99
2.28 使用网格视图控件布局屏幕 99
2.28.1 实例说明 99
2.28.2 具体实现 100
2.28.3 特别提醒--升级实例 102
2.29 在屏幕内实现多个标签栏样式的效果 102
2.29.1 实例说明 102
2.29.2 具体实现 102
2.29.3 特别提醒--TabView的标准用法格式 103
第3章 基本控件应用 104
3.1 使用EditText控件和setOnKeyListener事件实现文本处理 104
3.1.1 实例说明 104
3.1.2 具体实现 104
3.1.3 特别提醒--实现文字过滤 105
3.2 在屏幕中实现一个背景图片按钮 106
3.2.1 实例说明 106
3.2.2 具体实现 106
3.2.3 特别提醒--"res/drawable"目录的作用 108
3.3 使用Toast实现提醒 108
3.3.1 实例说明 108
3.3.2 具体实现 109
3.3.3 特别提醒--Toast的优势 110
3.4 用RadioGroup控件实现选择处理 112
3.4.1 实例说明 112
3.4.2 具体实现 112
3.4.3 特别提醒--RadioGroup控件的特殊作用 113
3.5 使用CheckBox实现一个购物清单 114
3.5.1 实例说明 114
3.5.2 具体实现 114
3.5.3 特别提醒--应用触摸屏技术 116
3.6 使用CheckBox实现同意条款效果 117
3.6.1 实例说明 117
3.6.2 具体实现 117
3.6.3 特别提醒--处理CheckBox的状态 119
3.7 使用ImageView控件实现相框效果 120
3.7.1 实例说明 120
3.7.2 具体实现 120
3.7.3 特别提醒--ImageButton的按钮切换 122
3.8 使用Spinner实现选择处理 122
3.8.1 实例说明 122
3.8.2 具体实现 123
3.8.3 特别提醒--设置下拉菜单中的TextView 125
3.9 使用Gallery控件实现个人相簿功能 125
3.9.1 实例说明 125
3.9.2 具体实现 126
3.9.3 特别提醒--设置Gallery图片的宽高 128
3.10 在手机中实现文件搜索功能 128
3.10.1 实例说明 128
3.10.2 具体实现 128
3.10.3 特别提醒--搜索子目录 130
3.11 使用ImageButton控件实现按钮置换功能 130
3.11.1 实例说明 130
3.11.2 具体实现 131
3.11.3 特别提醒--操作显示的默认图片 132
3.12 使用AnalogClock实现一个时钟效果 132
3.12.1 实例说明 132
3.12.2 具体实现 132
3.13.3 特别提醒--三种常用的System Clock 134
3.14 在手机屏幕中实现不同的进度条效果 134
3.14.1 实例说明 134
3.14.2 具体实现 135
3.14.3 特别提醒--在进度条中的4种不同风格 137
3.15 在屏幕中手动选择日期和时间 138
3.15.1 实例说明 138
3.15.2 具体实现 138
3.15.3 特别提醒--控件TimePicker中的主要方法 140
3.16 动态排版手机屏幕 140
3.16.1 实例说明 140
3.16.2 具体实现 140
3.16.3 特别提醒--总结UI界面布局 142
3.17 使用ListActivity实现界面布局 143
3.17.1 实例说明 143
3.17.2 具体实现 143
3.17.3 特别提醒--ListActivity的用法总结 145
3.18 加载手机磁盘中的文件 1463.18.1 实例说明 146
3.18.2 具体实现 146
3.18.3 特别提醒--解析Android中的图片素材目录 148
3.19 使用菜单控件MENU 149
3.19.1 实例说明 149
3.19.2 具体实现 149
3.19.3 特别提醒--Android系统中的3种菜单类型 151
3.20 使用SimpleAdapter实现ListView效果 151
3.20.1 实例说明 152
3.20.2 具体实现 152
3.20.3 特别提醒--ArrayAdapter接受一个数组或者List作为参数 153
3.21 在屏幕中实现抽屉样式效果 154
3.21.1 实例说明 154
3.21.2 具体实现 155
3.21.3 特别提醒--实现可拖拉的抽屉效果 159
3.22 在屏幕中演示使用多种对话框 162
3.22.1 实例说明 163
3.22.2 具体实现 163
3.22.3 特别提醒--自定义消除alertdialog的黑、白边框 167
3.23 联合使用Toast和Notification实现提醒 169
3.23.1 实例说明 169
3.23.2 具体实现 170
3.23.3 特别提醒--更新通知信息 176
3.24 动态添加/删除Spinner菜单 176
3.24.1 实例说明 177
3.24.2 具体实现 177
3.24.3 特别提醒--改变TextView内容 180
3.25 自定义一个Android控件 180
3.25.1 实例说明 180
3.25.2 具体实现 180
3.25.3 特别提醒--将属性值绑定到控件的基本步骤 184
3.26 设置控件的外观样式 185
3.26.1 实例说明 185
3.26.2 具体实现 185
3.26.3 特别提醒--查看Android开源代码 186
3.27 使用自定义控件在屏幕中绘制一条虚线 187
3.27.1 实例说明 187
3.27.2 具体实现 188
3.27.3 特别提醒--总结实现自定义控件的流程 189
3.28 实现自定义组合控件和自定义对话框 189
3.28.1 实例说明 189
3.28.2 具体实现 190
3.28.3 特别提醒--应吸取的经验 194
3.29 使用OptionsMenu在屏幕中自定义菜单 194
3.29.1 实例说明 194
3.29.2 具体实现 195
3.29.3 特别提醒--编写自定义样式 196
3.30 使用ExpandableListView实现手风琴效果 198
3.30.1 实例说明 199
3.30.2 具体实现 199
3.30.3 特别提醒--ExpandableListAdapter接口 200
3.31 基于自定义适配器的ExpandableListView 200
3.31.1 实例说明 201
3.31.2 具体实现 201
3.31.3 特别提醒--实现规整的布局 204
3.32 使用Chronometer在屏幕中实现定时器效果 206
3.32.1 实例说明 206
3.32.2 具体实现 206
3.32.3 特别提醒--进一步设置时间 208
3.33 使用控件SlidingDrawer在屏幕中实现滑动式抽屉的效果 208
3.33.1 实例说明 208
3.33.2 具体实现 209
3.33.3 特别提醒--布局SlidingDrawer里面的控件 210
第4章 屏幕显示应用 212
4.1 在屏幕中输出显示一段文字 212
4.1.1 实例说明 212
4.1.2 具体实现 212
4.1.3 特别提醒--处理超出屏幕宽度的文字 213
4.2 更改屏幕背景颜色 213
4.2.1 实例说明 213
4.2.2 具体实现 213
4.2.3 特别提醒--"res/values"目录保存设置颜色 215
4.3 更改屏幕中的文字颜色 215
4.3.1 实例说明 215
4.3.2 具体实现 215
4.3.3 特别提醒--遵循MVC开发模式 216
4.5 置换屏幕中TextView文字的颜色 217
4.4.1 实例说明 217
4.4.2 具体实现 217
4.4.3 特别提醒--使用转义字符 218
4.5 获取手机屏幕的分辨率 218
4.5.1 实例说明 218
4.5.2 具体实现 219
4.5.3 特别提醒--DisplayMetrics的用法 219
4.6 设置屏幕中的文字样式 220
4.6.1 实例说明 220
4.6.2 具体实现 220
4.6.3 特别提醒--更改Layout中对象的外观 221
4.7 响应按钮事件 222
4.7.1 实例说明 222
4.7.2 具体实现 222
4.7.3 特别提醒--两个注意事项 222
4.8 实现屏幕界面的转换 223
4.8.1 实例说明 223
4.8.2 具体实现 223
4.8.3 特别提醒--setContentView转换屏幕界面 225
4.9 在一个Activity中调用另一个Activity 225
4.9.1 实例说明 225
4.9.2 具体实现 225
4.9.3 特别提醒--Intent的作用 227
4.10 计算标准体重 227
4.10.1 实例说明 227
4.10.2 具体实现 227
4.10.3 特别提醒--Activity的原理 230
4.11 将数据返回到前一个Activity 230
4.11.1 实例说明 230
4.11.2 具体实现 231
4.11.3 特别提醒--重新返回给主Activity1 234
4.12 单击按钮后改变文字颜色 234
4.12.1 实例说明 234
4.12.2 具体实现 234
4.12.3 特别提醒--使用HTML控制颜色 235
4.13 设置手机屏幕中文本的字体 236
4.13.1 实例说明 236
4.13.2 具体实现 236
4.13.3 特别提醒--使用字体的问题 237
4.14 在手机屏幕中实现拖动图片特效 237
4.14.1 实例说明 237
4.14.2 具体实现 237
4.14.3 特别提醒--导入外部图片作为内置图 238
4.15 制作一个简单的计算器 239
4.15.1 实例说明 239
4.15.2 具体实现 239
4.15.3 特别提醒--计算小数 240
4.16 在屏幕中实现一个About(关于)信息效果 240
4.16.1 实例说明 241
4.16.2 具体实现 241
4.16.3 特别提醒--实现一个确认对话框 242
4.17 在手机屏幕中实现程序加载效果 242
4.17.1 实例说明 242
4.17.2 具体实现 243
4.17.3 特别提醒--ProgressDialog类 244
4.18 创建一个有选择项的对话框 244
4.18.1 实例说明 244
4.18.2 具体实现 245
4.18.3 特别提醒--AlertDialog.Builder的内部组成 246
4.19 改变手机的主题 246
4.19.1 实例说明 246
4.19.2 具体实现 247
4.19.3 特别提醒--设置Style 247
4.20 在屏幕中自动显示输入的数据 248
4.20.1 实例说明 248
4.20.2 具体实现 248
4.20.3 特别提醒--链接字符串的妙用 248
4.21 实现手机振动效果 249
4.21.1 实例说明 249
4.21.2 具体实现 250
4.21.3 特别提醒--Vibrator对象实现振动 253
4.22 实现图文提醒效果 253
4.22.1 实例说明 253
4.22.2 具体实现 253
4.22.3 特别提醒--带图提醒的妙用 254
4.23 实现类似于MSN/QQ状态效果 255
4.23.1 实例说明 255
4.23.2 具体实现 255
4.23.3 特别提醒--使用NotificationManager的基本步骤 258
4.24 检索手机中的通讯录 259
4.24.1 实例说明 259
4.24.2 具体实现 259
4.24.3 特别提醒--URL介绍和ContentResolver的用法剖析 262
4.25 管理手机系统中的文件 264
4.25.1 实例说明 264
4.25.2 具体实现 264
4.25.3 特别提醒--同时显示文件名、图标和文件夹名 268
4.26 清除、还原手机桌面 268
4.26.1 实例说明 268
4.26.2 具体实现 268
4.26.3 特别提醒--类ContextWrapper的根类 269
4.27 "修改/删除"手机中的文件 269
4.27.1 实例说明 270
4.27.2 具体实现 270
4.27.3 特别提醒--I/O类的操作流程 276
4.28 获取当前运行程序的路径 278
4.28.1 实例说明 278
4.28.2 具体实现 278
4.28.3 特别提醒--两种表示目录的方式 280
4.29 获取手机内SIM卡的信息 281
4.29.1 实例说明 281
4.29.2 具体实现 282
4.29.3 特别提醒--SIM卡的意义 285
4.30 查看当前系统中正在运行的程序 285
4.30.1 实例说明 285
4.30.2 具体实现 285
4.30.3 特别提醒--AndroidManifest.xml中的权限 288
4.31 修改手机屏幕的显示方向 291
4.31.1 实例说明 291
4.31.2 具体实现 291
4.31.3 特别提醒--切换和不切换的实现方法 293
第5章 自动为您服务 295
5.1 获取手机屏幕的分辨率 295
5.1.1 实例说明 295
5.1.2 具体实现 295
5.1.3 特别提醒--一个模拟器模拟短信操作 297
5.2 获取手机剩余的电池容量 298
5.2.1 实例说明 298
5.2.2 具体实现 298
5.2.3 特别提醒--Reseiver的作用 300
5.3 来电时自动发送信息提醒 300
5.3.1 实例说明 300
5.3.2 具体实现 300
5.3.3 特别提醒--TelephonyManager和PhoneStateListener 303
5.4 获取手机中存储卡的容量 304
5.4.1 实例说明 304
5.4.2 具体实现 304
5.4.3 特别提醒--使用FAT32格式的磁盘镜像作为SD卡的模拟 306
5.5 操作存储卡和内存卡中的信息 306
5.5.1 实例说明 306
5.5.2 具体实现 307
5.5.3 特别提醒--管理SD卡中的内容 312
5.6 设置闹钟 312
5.6.1 实例说明 313
5.6.2 具体实现 313
5.6.3 特别提醒--类AlarmManager的作用 317
5.7 设置黑名单来电自动静音 317
5.7.1 实例说明 318
5.7.2 具体实现 318
5.7.3 特别提醒--检测Android系统是否静音 320
5.8 定时更换手机桌面背景 320
5.8.1 实例说明 320
5.8.2 具体实现 320
5.8.3 特别提醒--AlarmManager的原理 328
5.9 开机后自动显示一个界面 328
5.9.1 实例说明 328
5.9.2 具体实现 328
5.9.3 特别提醒--开机发送BOOT_COMPLETED广播信息 329
5.10 替换手机屏幕的背景图片 329
5.10.1 实例说明 329
5.10.2 具体实现 330
5.10.3 特别提醒--维持图片的宽高比 332
5.11 在手机屏幕中拖动一个按钮 333
5.11.1 实例说明 333
5.11.2 具体实现 333
5.11.3 特别提醒--通过keyCode来判断A~Z的按键 336
5.12 自动控制系统服务 337
5.12.1 实例说明 337
5.12.2 具体实现 337
5.12.3 特别提醒--Service 的作用 339
5.13 手机背面朝上时自动启动振动模式 339
5.13.1 实例说明 339
5.13.2 具体实现 339
5.13.3 特别提醒--registerListener()的参数 344
第6章 数据存储服务 345
6.1 在屏幕中显示SharedPreferences存储的信息 345
6.1.1 实例说明 345
6.1.2 具体实现 345
6.1.3 特别提醒--存放数据的路径 346
6.2 演示数据添加、删除等操作 347
6.2.1 实例说明 347
6.2.2 具体实现 347
6.2.3 特别提醒--打印输出级别 350
6.3 使用ContentProvider 351
6.3.1 实例说明 351
6.3.2 具体实现 351
6.3.3 特别提醒--ContentResolver的接口 353
6.4 使用SQLite编写一个日记本 353
6.4.1 实例说明 353
6.4.2 具体实现 354
6.4.3 特别提醒--SimpleCursorAdapter介绍 359
6.5 使用ContentProvider实现日记本功能 359
6.5.1 实例说明 359
6.5.2 具体实现 359
6.5.3 特别提醒--使用Uri 的形式 369
6.6 保存用户信息 369
6.6.1 实例说明 369
6.6.2 具体实现 369
6.6.3 特别提醒--获取XML文件中的数据 371
6.7 使用文件保存数据 372
6.7.1 实例说明 372
6.7.2 具体实现 372
6.7.3 特别提醒--方法openFileOutput() 374
6.8 将网上图片保存在SD卡中并显示出来 375
6.8.1 实例说明 375
6.8.2 具体实现 375
6.8.3 特别提醒--Android的数据存储方式 377
第7章 电话和短信应用 379
7.1 一个简单的拨号程序 379
7.1.1 实例说明 379
7.1.2 具体实现 379
7.1.3 特别提醒--IntentFilter实现拨号 381
7.2 发送短信程序 382
7.2.1 实例说明 382
7.2.2 具体实现 383
7.2.3 特别提醒--android.telephony和android.telephony.gsm 385
7.3 一个按钮拨号程序 385
7.3.1 实例说明 385
7.3.2 具体实现 385
7.3.3 特别提醒--方法isPhoneNumberValid来检查字符串 387
7.4 短信发送系统 388
7.4.1 实例说明 388
7.4.2 具体实现 388
7.4.3 特别提醒--SmsManager类中的方法 391
7.5 屏幕触控拨号程序 392
7.5.1 实例说明 392
7.5.2 具体实现 392
7.5.3 特别提醒--将Action动作定义成常数 393
7.6 实现短信群发功能 393
7.6.1 实例说明 394
7.6.2 具体实现 394
7.6.3 特别提醒--群组发送 396
7.7 发送短信时实现E-mail邮件通知 396
7.7.1 实例说明 397
7.7.2 具体实现 397
7.7.3 特别提醒--Intent机制的通信 400
7.8 来电后自动发送邮件通知 401
7.8.1 实例说明 401
7.8.2 具体实现 401
7.8.3 特别提醒--模拟器失败提示 402
7.9 监听短信是否发送成功 402
7.9.1 实例说明 403
7.9.2 具体实现 403
7.9.3 特别提醒--短信发送的两种状态 406
7.10 监控手机拨接状态 406
7.10.1 实例说明 407
7.10.2 具体实现 407
7.10.3 特别提醒--系统服务的返回对象 409
7.11 监控收取的短信中是否含有某关键字 409
7.11.1 实例说明 410
7.11.2 具体实现 410
7.11.3 特别提醒--Activity程序的唤醒 416
第8章 图形和图像处理 418
8.1.1 实例说明 418
8.1.2 具体实现 418
8.1.3 特别提醒--类Paint中的方法 420
8.2 在手机屏幕中绘制一个画布 421
8.2.1 实例说明 421
8.2.2 具体实现 421
8.2.3 特别提醒--生成图片水印 423
8.3 在手机屏幕中绘制各种图形 423
8.3.1 实例说明 423
8.3.2 具体实现 423
8.3.3 特别提醒--方法save和restore 426
8.4 在手机屏幕中模拟实现水纹效果 426
8.4.1 实例说明 427
8.4.2 实例说明 427
8.4.3 特别提醒--Bitmap类缩放图片 429
8.5 在手机屏幕中渲染一个几何图形 430
8.5.1 实例说明 430
8.5.2 具体实现 430
8.5.3 特别提醒--类Shader的直接子类 432
8.6 在手机屏幕中实现动画效果 432
8.6.1 实例说明 432
8.6.2 具体实现 432
8.6.3 特别提醒--Tween的4种动画效果 434
8.7 在手机屏幕中实现Frame动画效果 434
8.7.1 具体实现 434
8.7.2 特别提醒--使用Frame动画的流程 435
8.8 使用Matrix实现图片缩放 435
8.8.1 实例说明 435
8.8.2 具体实现 436
8.8.3 特别提醒--4种缩放位图的方法 439
8.9 旋转屏幕中的图片 439
8.9.1 实例说明 440
8.9.2 具体实现 440
8.9.3 特别提醒--Matrix或Canvas旋转位图 442
8.10 实现天上移动星星的效果 442
8.10.1 实例说明 442
8.10.2 具体实现 442
8.10.3 特别提醒--OpenGL技术 445
8.11 构建一个模拟3D场景效果 446
8.11.1 实例说明 446
8.11.2 具体实现 446
8.11.3 特别提醒--OpenGL标准接口 448
8.12 实现浮动的旗帜效果 449
8.12.1 实例说明 449
8.12.2 具体实现 449
8.12.3 特别提醒--OpenGL ES绘图的基本流程 450
8.13 屏幕中显示多个物体 451
8.13.1 实例说明 451
8.13.2 具体实现 451
8.13.3 特别提醒--类FloatBuffer 453
8.14 模拟实现粒子系统效果 453
8.14.1 实例说明 453
8.14.2 具体实现 453
8.14.3 特别提醒--粒子系统的实现流程 456
8.15 移动手机屏幕中的图片 456
8.15.1 实例说明 456
8.15.2 具体实现 456
8.15.3 特别提醒--save和restore实现绘制 459
8.16 在Canvas 画布中绘制字符串 460
8.16.1 实例说明 460
8.16.2 具体实现 460
8.16.3 特别提醒--设置画布的属性 466
8.17 在手机屏幕中移动一个不断变换颜色的图形 466
8.17.1 实例说明 466
8.17.2 具体实现 466
8.17.3 特别提醒--SurfaceView的用法 469
8.18 在手机屏幕中实现一个图片移动的动画效果 469
8.18.1 实例说明 469
8.18.2 具体实现 469
8.18.3 特别提醒--SurfaceHolder.Callback回调接口方法 472
8.19 绘制一个三维圆柱体 472
8.19.1 实例说明 472
8.19.2 具体实现 473
8.19.3 特别提醒--数学中的圆柱体 479
8.20 在手机屏幕中混合图像 480
8.20.1 实例说明 480
8.20.2 具体实现 480
8.20.3 特别提醒--常用的混合方式 484
8.21 显示图片的宽和高 484
8.21.1 实例说明 484
8.21.2 具体实现 485
8.21.3 特别提醒--处理位图 487
8.22 绘制各种空心图形、实心图形和渐变图形 487
8.22.1 实例说明 487
8.22.2 具体实现 487
8.22.3 特别提醒--Canvas与ImageView 490
8.23 编写一个屏保程序 490
8.23.1 实例说明 490
8.23.2 具体实现 490
8.23.3 特别提醒--Runnable的作用 496
8.24 在屏幕中通过触摸单击的方式移动图片 496
8.24.1 实例说明 497
8.24.2 具体实现 497
8.24.3 特别提醒--Bitmap的用法 500
8.25 在手机屏幕中绘制一个矩形 500
8.25.1 实例说明 500
8.25.2 具体实现 500
8.25.3 特别提醒--模拟器中创建虚拟SD卡 502
8.26 在手机屏幕中显示系统内的图片信息 503
8.26.1 实例说明 503
8.26.2 具体实现 503
8.26.3 特别提醒--类Canvas显示位图 504
第9章 互联网应用 506
9.1 传递HTTP参数 506
9.1.1 实例说明 506
9.1.2 具体实现 506
9.1.3 特别提醒--在Android系统中打开链接 509
9.2 在手机中浏览网页 509
9.2.1 实例说明 509
9.2.2 具体实现 509
9.2.3 特别提醒--loadUrl方法访问网页 510
9.3 在手机中使用HTML程序 511
9.3.1 实例说明 511
9.3.2 具体实现 511
9.3.3 特别提醒--开发Android网络项的注意事项 511
9.4 使用内置浏览器打开网页 512
9.4.1 实例说明 512
9.4.2 具体实现 512
9.4.3 特别提醒--WebSettings设置WebView属性 514
9.5 在屏幕中显示QQ空间中的图片 514
9.5.1 实例说明 514
9.5.2 具体实现 514
9.5.3 特别提醒--Gallery控件在游戏中的应用 516
9.5.4 实例说明 516
9.5.5 具体实现 516
9.5.6 特别提醒--将InputStream转换为String 518
9.6 将文件上传至服务器 519
9.6.1 实例说明 519
9.6.2 具体实现 519
9.6.3 特别提醒--表单上传程序实现文件上传 521
9.7 实现一个RSS系统 522
9.7.1 实例说明 522
9.7.2 具体实现 522
9.7.3 特别提醒--RSS2.0的语法规则 529
9.8 远程下载并安装一个软件 530
9.8.1 实例说明 531
9.8.2 具体实现 531
9.8.3 特别提醒--APK文件介绍 534
9.9 开发一个移动微博发布器 538
9.9.1 实例说明 538
9.9.2 具体实现 539
9.9.3 特别提醒--乐多博客的接口 542
第10章 多媒体应用 544
10.1 调节手机音量的大小 544
10.1.1 实例说明 544
10.1.2 具体实现 544
10.1.3 特别提醒--AudioManager管理手机声音 547
10.2 在手机中播放MP3文件 548
10.2.1 实例说明 548
10.2.2 具体实现 548
10.2.3 特别提醒--播放手机卡里的音乐或者网络中的流媒体 551
10.3 编写一个录音程序 551
10.3.1 实例说明 551
10.3.2 具体实现 551
10.3.3 特别提醒--Android的开源多媒体框架 556
10.4 在手机中实现相机预览和拍照功能 556
10.4.1 实例说明 557
10.4.2 具体实现 557
10.4.3 特别提醒--使用摄像头的方法 562
10.5 在手机中播放影片 564
10.5.1 实例说明 564
10.5.2 具体实现 564
10.5.3 特别提醒--VideoView类的构造函数 566
10.6 编程的方式设置手机中的铃声 567
10.6.1 实例说明 567
10.6.2 具体实现 567
10.6.3 特别提醒--设置3种声音 569
10.7 播放远程网络中的MP3 570
10.7.1 实例说明 570
10.7.2 具体实现 570
10.7.3 特别提醒--Runnable并不一定是新开一个线程 575
10.8 从网络中远程下载手机铃声 576
10.8.1 实例说明 576
10.8.2 具体实现 576
10.8.3 特别提醒--使用Notification的注意事项 581
10.9 远程观看网络中的3GP视频 581
10.9.1 实例说明 581
10.9.2 具体实现 581
10.9.3 特别提醒--Gallery调用MediaProvider的数据 587
10.10 在屏幕中播放GIF动画 587
10.10.1 实例说明 587
10.10.2 具体实现 588
10.10.3 特别提醒--GIF动画和帧播放 592
10.11 编写一个简单的音乐播放器 593
10.11.1 实例说明 593
10.11.2 具体实现 593
10.11.3 特别提醒--SD卡支持ContentProvider接口 597
10.12 在手机中播放MP4视频 597
10.12.1 实例说明 597
10.12.2 具体实现 598
10.12.3 特别提醒--VideoView中的常用方法 599
第11章 地图服务 600
11.1 获取当前位置的坐标 600
11.1.1 实例说明 600
11.1.2 具体实现 600
11.1.3 特别提醒--android.location的定位功能 602
11.2 使用谷歌地图 603
11.2.1 实例说明 603
11.2.2 具体实现 605
11.2.3 特别提醒--使用Map API密钥的基本流程 609
11.3 输入一个坐标后在地图中实现定位 610
11.3.1 实例说明 610
11.3.2 具体实现 610
11.3.3 特别提醒--类GeoPoint的方法 613
14.4 在手机中实现地址查询 613
11.4.1 实例说明 613
11.4.2 具体实现 613
11.4.3 特别提醒--Google Map API解密 616
11.5 实现路径导航 616
11.5.1 实例说明 616
11.5.2 具体实现 617
11.5.3 特别提醒--起点和终点的设置 623
11.6 移动手机时自动实现位置更新 623
11.6.1 实例说明 623
11.6.2 具体实现 623
11.6.3 特别提醒--判断GPS模块是否存在或开启 627
11.7 在地图中绘制线路并计算距离 627
11.7.1 实例说明 627
11.7.2 具体实现 627
11.7.3 特别提醒--JavaScript overlay类型 633
11.8 在谷歌地图中显示指定的位置 633
11.8.1 实例说明 633
11.8.2 具体实现 633
11.8.3 特别提醒--Android的位置访问 635
11.9 在屏幕中显示当前位置的详细信息 635
11.9.1 实例说明 635
11.9.2 具体实现 635
11.9.3 特别提醒--Android中实现定位的地图 639
11.10 快速查询某个位置 639
11.10.1 实例说明 639
11.10.2 具体实现 639
11.10.3 特别提醒--谷歌地图的3种视图模式 640
11.11 在手机地图中查询一个地址 641
11.11.1 实例说明 641
11.11.2 具体实现 641
11.11.3 特别提醒--选择中文输入法 642
第12章 Google API 643
12.1 模拟验证官方账号 643
12.1.1 实例说明 643
12.1.2 具体实现 643
12.1.3 特别提醒--Google Account的组成 648
12.2 实现谷歌搜索功能 649
12.2.1 实例说明 649
12.2.2 具体实现 649
12.2.3 特别提醒--使用Google Search API的流程 653
12.3 使用Google Chart API生成二维条码 653
12.3.1 实例说明 653
12.3.2 具体实现 654
12.3.3 特别提醒--Google Chart API的用法详解 656
12.4 在手机中编写一个翻译软件 657
12.4.1 实例说明 658
12.4.2 具体实现 658
12.4.3 特别提醒--Ajax语言的API 659
12.5 在手机屏幕中生成二维条码 659
12.5.1 实例说明 659
12.5.2 具体实现 660
12.5.3 特别提醒--DisplayMetircs处理分辨率问题 663
12.6 引用qrcode项目实现二维条码 663
12.6.1 实例说明 663
12.6.2 具体实现 663
12.6.3 特别提醒--Android拍照的两种方式 670
第13章 游戏应用 671
13.1 五子棋游戏 671
13.1.1 实例说明 671
13.1.2 具体实现 671
13.2 益智类游戏--魔塔 677
13.2.1 实例说明 678
13.2.2 具体实现 678
13.2.3 特别提醒-- 一款游戏产品受到的限制 694
13.3 一个简单的贪吃蛇游戏 694
13.3.1 实例说明 695
13.3.2 具体实现 695
13.3.3 特别提醒--贪吃蛇游戏的基本思路 699
13.4 扑克游戏 700
13.4.1 实例说明 700
13.4.2 具体实现 700
13.4.3 特别提醒--游戏的大纲策划 704
13.5 扫雷游戏 705
13.5.1 实例说明 705
13.5.2 具体实现 705
13.5.3 特别提醒--用"?"标记空白 712
第14章 程序优化 713
14.1 标签在UI界面中的优化作用 713
14.1.1 实例说明 713
14.1.2 具体实现 713
14.1.3 特别提醒--使用标签的注意事项 715
14.2 测试计算机的性能 715
14.2.1 实例说明 716
14.2.2 具体实现 716
14.2.3 特别提醒--使用动态代理的好处 718
14.3 测试内存性能 718
14.3.1 实例说明 718
14.3.2 具体实现 718
14.3.3 特别提醒--命名问题 720
14.4 Android Layout优化 721
14.4.1 实例说明 721
14.4.2 具体实现 721
14.4.3 特别提醒--Layout布局的注意事项 722
14.5 优化Bitmap图片 722
14.5.1 实例说明 722
14.5.2 具体实现 722
14.5.3 特别提醒--Options中的属性 724
14.6 优化Android模拟器 724
14.6.1 实例说明 724
14.6.2 具体实现 724
14.6.3 特别提醒--开启动画效果选项 727
第15章 平板电脑应用开发 728
15.1 设置平板设备程序开发环境 728
15.1.1 实例说明 728
15.1.2 具体实现 728
15.1.3 特别提醒--平板电脑的分辨率 729
15.2 在平板电脑中开发一个音乐播放器 730
15.2.1 实例说明 730
15.2.2 具体实现 730
15.2.3 特别提醒--在平板电脑中开发一个视频播放程序 735
15.3 浏览指定的网页 736
15.3.1 实例说明 736
15.3.2 具体实现 736
15.3.3 特别提醒--设置样式自适应 741
15.4 开发一个天气预报系统 741
15.4.1 实例说明 741
15.4.2 具体实现 741
15.4.3 特别提醒--XML实现方式 748
15.5 使用文件存储数据的方法保存音乐状态 750
15.5.1 实例说明 750
15.5.2 具体实现 750
15.5.3 特别提醒--修改平板电脑程序 752
第16章 创意开发 753
16.1 开发一个控制玩具车的蓝牙遥控器 753
16.1.1. 实例说明 753
16.1.2 具体实现 753
16.1.3 特别提醒--蓝牙在模拟器上发生问题 760
16.2 手机模拟实现跋杯仪式 760
16.2.1 实例说明 760
16.2.2 具体实现 760
16.2.3 特别提醒--使用传感器技术 765
16.3 随时检测当前的加速度 765
16.3.1 实例说明 765
16.3.2 具体实现 766
16.3.3 特别提醒--安装SensorSimulator工具 767
16.4 语音识别系统 771
16.4.1 实例说明 771
16.4.2 具体实现 771
16.4.3 特别提醒--谷歌的语音识别技术 772
16.5 在Android中使用JavaScript 773
16.5.1 实例说明 773
16.5.2 具体实现 773
16.5.3 特别提醒--在Android中做网页 775