书籍详情
Android实例开发完全手册
作者:陈强 编著
出版社:人民邮电出版社
出版时间:2012-07-01
ISBN:9787115282842
定价:¥99.00
购买这本书可以去
内容简介
Android凭借其开源开放性、优异的用户体验和极为方便的开发方式,赢得了广大用户和开发者的青睐,目前已经发展成为智能手机操作系统的翘楚。《Android实例开发完全手册》言简意赅、通俗易懂、实例全面并典型,几乎囊括了所有的和Android应用相关的项目。全书分为16个章,分别讲解了UI布局实例、控件实例、自动化服务实例、数据存储实例、电话和短信实例、图形图像实例和网络有关的实例,以及多媒体实例、Google地图实例。Google API实例、平板电脑应用开发、游戏应用、程序优化等。《Android实例开发完全手册》适合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 <merge />标签在UI界面中的优化作用 713
14.1.1 实例说明 713
14.1.2 具体实现 713
14.1.3 特别提醒——使用<merge />标签的注意事项 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
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 <merge />标签在UI界面中的优化作用 713
14.1.1 实例说明 713
14.1.2 具体实现 713
14.1.3 特别提醒——使用<merge />标签的注意事项 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
猜您喜欢