Android凭着其开源系统综合性、出色的客户体验和极其便捷的开发方法,获得了众多客户和开发人员的亲睐,现阶段早已发展趋势变成智能化手机操作系统的榜首。
《Android实例开发完全手册》简明扼要、浅显易懂、实例全方位并典型性,基本上包揽了全部的和Android运用有关的新项目。全书分成18个章,各自解读了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