《Android实例开发完全手册》PDF下载

  • 购买积分:21 如何计算积分?
  • 作  者:陈强编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2012
  • ISBN:9787115282842
  • 页数:775 页
图书介绍:本书通过1000个实例和开发技巧的详细讲解,让读者学会如何把Android技术应用的开发中,这些特性是目前市面上的一些书籍所没有的。本书中的实例均来源于真实的产品,100%原创。

第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 特别提醒——更改TextViiew文字的颜色 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 加载手机磁盘中的文件 146

3.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 特别提醒——Expandable ListAdapter接口 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.1l.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 特别提醒——SimpleCursor Adapter介绍 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.1 8.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 特别提醒——JavaScfiptoverlay类型 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