第1章 Android系统及其开发过程... 1
1.1 Android系统概述... 1
1.2 安装Android SDK开发环境... 2
1.2.1 安装Android SDK前必要的准备... 2
1.2.2 安装Android SDK详解... 3
1.2.3 设置环境变量... 7
1.3 Android API和在线帮助文档... 7
1.4 Android应用程序的开发过程... 8
1.4.1 开发Android应用程序的一般过程... 8
1.4.2 生成Android应用程序框架... 9
1.4.3 编写MainActivity.java. 10
1.4.4 配置应用程序的运行参数... 11
1.4.5 在模拟器中运行应用程序... 12
1.5 Android应用程序结构... 12<div class="WordSection1"> <p>第1章 Android系统及其开发过程... 1</p> <p>1.1 Android系统概述... 1</p> <p>1.2 安装Android SDK开发环境... 2</p> <p><st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False">1.2.1</st1:chsdate> 安装Android SDK前必要的准备... 2</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">1.2.2 </st1:chsdate>安装Android SDK详解... 3</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">1.2.3</st1:chsdate> 设置环境变量... 7</p> <p>1.3 Android API和在线帮助文档... 7</p> <p>1.4 Android应用程序的开发过程... 8</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">1.4.1</st1:chsdate> 开发Android应用程序的一般过程... 8</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">1.4.2</st1:chsdate> 生成Android应用程序框架... 9</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">1.4.3 </st1:chsdate>编写MainActivity.java. 10</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">1.4.4</st1:chsdate> 配置应用程序的运行参数... 11</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">1.4.5</st1:chsdate> 在模拟器中运行应用程序... 12</p> <p>1.5 Android应用程序结构... 12</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">1.5.1</st1:chsdate> 目录结构... 12</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">1.5.2 A</st1:chsdate>ndroid应用程序架构分析... 18</p> <p>1.6 Android应用程序设计示例... 19</p> <p>习题1. 21</p> <p>第2章 Java语法概述... 22</p> <p>2.1 语法基础... 22</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.1.1</st1:chsdate> 数据类型... 22</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.1.2 </st1:chsdate>常量与变量... 23</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.1.3 </st1:chsdate>对变量赋值... 24</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.1.4 </st1:chsdate>关键字... 24</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.1.5 </st1:chsdate>转义符... 24</p> <p>2.2 基本数据类型应用示例... 25</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.2.1 </st1:chsdate>整型与浮点型... 25</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.2.2 </st1:chsdate>字符型... 27</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.2.3 </st1:chsdate>布尔型... 28</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.2.4</st1:chsdate> 数据类型的转换... 29</p> <p>2.3 程序控制语句... 30</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.3.1</st1:chsdate> 语句的分类... 30</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.3.2</st1:chsdate> 顺序控制语句... 31</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.3.3 </st1:chsdate>if语句... 32</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.3.4</st1:chsdate> switch语句... 34</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.3.5</st1:chsdate> 循环语句... 35</p> <p><st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False">2.3.6</st1:chsdate> 转语句... 40</p> <p>2.4 类与对象... 42</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.4.1</st1:chsdate> 类的定义... 42</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.4.2</st1:chsdate> 对象... 44</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.4.3</st1:chsdate> 接口... 46</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.4.4</st1:chsdate> 包... 47</p> <p>2.5 XML语法简介... 47</p> <p>习题2. 51</p> <p>第3章 Android用户界面设计... 53</p> <p>3.1 用户界面组件包widget和View类... 53</p> <p>3.2 文本标签与按钮... 54</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">3.2.1</st1:chsdate> 文本标签... 54</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">3.2.2</st1:chsdate> 按钮... 56</p> <p>3.3 文本编辑框... 61</p> <p>3.4 Android布局管理... 64</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">3.4.1</st1:chsdate> 布局文件的规范与重要属性... 64</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">3.4.2</st1:chsdate> 常见的布局方式... 65</p> <p>3.5 进度条和选项按钮... 72</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">3.5.1</st1:chsdate> 进度条... 72</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">3.5.2</st1:chsdate> 选项按钮... 74</p> <p>3.6 图像显示与画廊组件... 80</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">3.6.1</st1:chsdate> 图像显示ImageView类... 80</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">3.6.2</st1:chsdate> 画廊组件Gallery与图片切换器ImageSwitcher 84</p> <p>3.7 消息提示... 88</p> <p>3.8 列表组件... 91</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">3.8.1</st1:chsdate> 列表组件ListView类... 91</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">3.8.2</st1:chsdate> 列表组件ListActivity类... 94</p> <p>3.9 滑动抽屉组件... 96</p> <p>习题3. 100</p> <p>第4章 多个用户界面的程序设计... 102</p> <p>4.1 页面切换与传递参数值... 102</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">4.1.1 </st1:chsdate>传递参数组件Intent 102</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">4.1.2 A</st1:chsdate>ctivity页面切换... 102</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">4.1.3 </st1:chsdate>应用Intent在Activity页面之间传递数据... 106</p> <p>4.2 菜单... 110</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">4.2.1</st1:chsdate> 选项菜单... 110</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">4.2.2</st1:chsdate> 上下文菜单... 112</p> <p>4.3 对话框... 114</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">4.3.1</st1:chsdate> 消息对话框... 114</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">4.3.2</st1:chsdate> 其他几种常用对话框... 120</p> <p>习题4. 123</p> <p>第5章 异常处理与多线程... 124</p> <p>5.1 异常处理... 124</p> <p>5.2 多线程... 126</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">5.2.1</st1:chsdate> 线程与多线程... 126</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">5.2.2</st1:chsdate> 线程的生命周期... 127</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">5.2.3</st1:chsdate> 线程的数据通信... 128</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">5.2.4</st1:chsdate> 创建线程... 130</p> <p>习题5. 137</p> <p>第6章 图形与多媒体处理... 138</p> <p>6.1 绘制几何图形... 138</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">6.1.1 </st1:chsdate>几何图形绘制类... 138</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">6.1.2</st1:chsdate> 几何图形的绘制过程... 139</p> <p>6.2 触摸屏事件处理... 144</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">6.2.1</st1:chsdate> 简单触摸屏事件... 144</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">6.2.2</st1:chsdate> 手势识别事件... 150</p> <p>6.3 音频播放... 153</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">6.3.1 </st1:chsdate>多媒体处理包... 153</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">6.3.2 </st1:chsdate>媒体处理播放器... 154</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">6.3.3 </st1:chsdate>播放音频文件... 155</p> <p>6.4 视频播放... 161</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">6.4.1</st1:chsdate> 应用媒体播放器播放视频... 161</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">6.4.2</st1:chsdate> 应用视频视图播放视频... 164</p> <p>6.5 录音与拍照... 166</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">6.5.1</st1:chsdate> 用于录音、录像的MediaRecorder类... 166</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">6.5.2</st1:chsdate> 录音示例... 167</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">6.5.3</st1:chsdate> 拍照... 170</p> <p>6.6 将文本转换成语音... 176</p> <p>6.7 图像处理技术... 178</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">6.7.1</st1:chsdate> 处理图像的颜色矩阵... 178</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">6.7.2</st1:chsdate> 处理图像的坐标变换矩阵... 184</p> <p>习题6. 192</p> <p>第7章 后台服务与系统服务技术... 193</p> <p>7.1 后台服务Service. 193</p> </div> <div class="WordSection2"> <p>7.2 信息广播机制Broadcast 197</p> <p>7.3 系统服务... 206</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">7.3.1 A</st1:chsdate>ndroid的系统服务... 206</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">7.3.2</st1:chsdate> 系统通知服务Notification. 206</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">7.3.3</st1:chsdate> 系统定时服务AlarmManager 209</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">7.3.4</st1:chsdate> 系统功能的调用... 212</p> <p>习题7. 215</p> <p>第8章 数据存储... 216</p> <p>8.1 SQLite数据库... 216</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">8.1.1</st1:chsdate> SQLite数据库简介... 216</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">8.1.2</st1:chsdate> 管理和操作SQLite数据库的对象... 217</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">8.1.3</st1:chsdate> SQLite数据库的操作命令... 218</p> <p>8.2 文件处理... 230</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">8.2.1</st1:chsdate> 输入流和输出流... 230</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">8.2.2</st1:chsdate> 处理文件流... 231</p> <p>8.3 轻量级存储SharedPreferences 237</p> <p>习题8. 240</p> <p>第9章 网络通信... 241</p> <p>9.1 网络编程的基础知识... 241</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">9.1.1 </st1:chsdate>IP地址和端口号... 241</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">9.1.2 </st1:chsdate>套接字... 244</p> <p>9.2 基于TCP的网络程序设计... 246</p> <p>9.3 基于HTTP的网络程序设计... 251</p> <p>9.4 Web视图... 255</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">9.4.1</st1:chsdate> 浏览器引擎WebKit 255</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">9.4.2</st1:chsdate> Web视图对象... 255</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">9.4.3</st1:chsdate> 调用JavaScript 258</p> <p>9.5 无线网络通信技术WiFi 266</p> <p>习题9. 272</p> <p>第10章 地图服务及传感器检测技术... 273</p> <p>10.1 Google地图... 273</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">10.1.1</st1:chsdate> Google Maps包... 273</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">10.1.2 </st1:chsdate>导入Google地图API的Maps包... 274</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">10.1.3</st1:chsdate> 显示地图MapView类... 274</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">10.1.4</st1:chsdate> 添加Google地图的贴图... 279</p> <p>10.2 位置服务... 282</p> <p>10.3 传感器检测技术... 286</p> <p><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">10.3.1</st1:chsdate> 传感器简介... 286</p> </div> <p>10.3.2 加速度传感器的应用示例... 289</p> <p>习题10. 297</p> <p>附录A JavaSDK及Eclipse的安装与配置... 298</p> <p>附录B Android的调试工具... 300</p> <b>附录</b>C<b> </b>Map API Key<b>的申请过程 </b>显示全部信息前 言Android系统自2007年推出以来,应用越来越广泛。除了手机、平板电脑使用Android系统之外,其他嵌入式系统也大量使用Android系统来设计。例如,车载设备、**设备、VoIP电话和智能电视等厂商纷纷推出Android系统产品。可以说,Android系统如日中天,相信将来还会有更好的发展。 1.本书特点 作为一本教材,本书有以下特点。 (1)易学易懂。本书面向Android系统的初学者,在叙述方式上浅显易懂,摒弃枯燥的理论,尽可能使用图示加以说明。对每一个知识点,都配了相应的例题。所有例题均短小精悍,适合课堂教学讲授。读者学完每一章内容后都可以编写出相应功能的程序。 (2)解释详细。对每一个例题,均进行了详细分析和解释,既可以帮助读者学习理解知识和概念,大大降低学习难度,又具有启发性。 (3)Java语言零基础学习。为了帮助没���Java语言基础的读者学习Android系统,特别安排了一章介绍Java基础知识的内容。 (4)配有视频教学演示。书中大部分例题均录制了教学视频,详细地记录了设计的操作过程,帮助读者更加轻松、迅速地理解和掌握本书内容。 2.学习方法 学习Android程序设计,应该循序渐进、由浅入深,不能跳跃式地进行,前面的内容还没搞清楚,就急于学习后面的内容,这样只会事倍功半,欲速则不达。 应该说,学习任何一种编程技术都会有一定难度。因此,要强调动手实践,多编程、多练习,熟能生巧,从学习中体验到程序设计的乐趣和成功的喜悦,增强学习信心。 3.本书内容 本书在内容结构上大致可以分成两个部分。 **部分(第1~4章)主要介绍Android SDK开发环境的安装、应用程序的结构、用户界面的组件及其设计方法,该部分内容是学习Android程序设计的入门基础。 第1章主要讲解Android SDK开发环境的安装,并说明如何下载Android SDK和如何从头开始创建新的应用程序。第2章简要介绍Java语言基础知识,为不熟悉Java语言的读者提供帮助,对于已有Java语言基础的读者,可以跳过本章。第3~4章讲解如何使用布局和视图创建用户界面,介绍了用户图形界面的常用组件及多用户界面程序的开发。 第二部分(第5~10章)主要介绍较**的主题,内容包括异常处理及多线程、图形与多媒体处理技术、后台服务与系统服务技术、数据库技术及输入/输出流的处理技术、网络通信技术、地图服务及传感器检测技术等。第5章讲解Android的异常处理方法以及多线程。第6章讲解图形与多媒体处理技术,介绍了绘制几何图形的基本方法、处理触摸屏事件的方法,还详细讨论了音频播放和视频播放的设计,以及录音、照相和文本转换语音技术,*后详细讲解了如何处理图像的缩放、变形、颜色等数字图像处理技术。第7章讲解后台服务与系统服务,以及系统功能调用。第8章讲解数据存储技术,介绍了SQLite数据库存储方式、文件存储方式和XML文件的SharedPreferences存储方式。第9章讲解网络通信,介绍了Socket套接字编程、基于Web编程和与JavaScript脚本交互的编程技术,以及无线网络通信技术WiFi的程序设计方法。第10章讲解地图服务及传感器检测技术,地图服务主要介绍地图查询和贴图的方法,传感器检测主要介绍重力加速度的应用。 书中所有例题均已在Eclipse? ?ADT环境下运行通过。本书提供了所有例题的源代码、电子课件。 参加本书编写、校对及程序测试工作的还有梁维娜、张静文、杨军民、颜敏敏等,在此表示感谢。 由于编者水平有限,书中难免有不足之处,敬请读者批评指正。编 者 2018年1月Android系统自2007年推出以来,应用越来越广泛。除了手机、平板电脑使用Android系统之外,其他嵌入式系统也大量使用Android系统来设计。例如,车载设备、**设备、VoIP电话和智能电视等厂商纷纷推出Android系统产品。可以说,Android系统如日中天,相信将来还会有更好的发展。 1.本书特点 作为一本教材,本书有以下特点。 (1)易学易懂。本书面向Android系统的初学者,在叙述方式上浅显易懂,摒弃枯燥的理论,尽可能使用图示加以说明。对每一个知识点,都配了相应的例题。所有例题均短小精悍,适合课堂教学讲授。读者学完每一章内容后都可以编写出相应功能的程序。 (2)解释详细。对每一个例题,均进行了详细分析和解释,既可以帮助读者学习理解知识和概念,大大降低学习难度,又具有启发性。 (3)Java语言零基础学习。为了帮助没有Java语言基础的读者学习Android系统,特别安排了一章介绍Java基础知识的内容。 (4)配有视频教学演示。书中大部分例题均录制了教学视频,详细地记录了设计的操作过程,帮助读者更加轻松、迅速地理解和掌握本书内容。 2.学习方法 学习Android程序设计,应该循序渐进、由浅入深,不能跳跃式地进行,前面的内容还没搞清楚,就急于学习后面的内容,这样只会事倍功半,欲速则不达。 应该说,学习任何一种编程技术都会有一定难度。因此,要强调动手实践,多编程、多练习,熟能生巧,从学习中体验到程序设计的乐趣和成功的喜悦,增强学习信心。 3.本书内容 本书在内容结构上大致可以分成两个部分。 **部分(第1~4章)主要介绍Android SDK开发环境的安装、应用程序的结构、用户界面的组件及其设计方法,该部分内容是学习Android程序设计的入门基础。 第1章主要讲解Android SDK开发环境的安装,并说明如何下载Android SDK和如何从头开始创建新的应用程序。第2章简要介绍Java语言基础知识,为不熟悉Java语言的读者提供帮助,对于已有Java语言基础的读者,可以跳过本章。第3~4章讲解如何使用布局和视图创建用户界面,介绍了用户图形界面的常用组件及多用户界面程序的开发。 第二部分(第5~10章)主要介绍较**的主题,内容包括异常处理及多线程、图形与多媒体处理技术、后台服务与系统服务技术、数据库技术及输入/输出流的处理技术、网络通信技术、地图服务及传感器检测技术等。第5章讲解Android的异常处理方法以及多线程。第6章讲解图形与多媒体处理技术,介绍了绘制几何图形的基本方法、处理触摸屏事件的方法,还详细讨论了音频播放和视频播放的设计,以及录音、照相和文本转换语音技术,*后详细讲解了如何处理图像的缩放、变形、颜色等数字图像处理技术。第7章讲解后台服务与系统服务,以及系统功能调用。第8章讲解数据存储技术,介绍了SQLite数据库存储方式、文件存储方式和XML文件的SharedPreferences存储方式。第9章讲解网络通信,介绍了Socket套接字编程、基于Web编程和与JavaScript脚本交互的编程技术,以及无线网络通信技术WiFi的程序设计方法。第10章讲解地图服务及传感器检测技术,地图服务主要介绍地图查询和贴图的方法,传感器检测主要介绍重力加速度的应用。 书中所有例题均已在Eclipse? ?ADT环境下运行通过。本书提供了所有例题的源代码、电子课件。 参加本书编写、校对及程序测试工作的还有梁维娜、张静文、杨军民、颜敏敏等,在此表示感谢。 由于编者水平有限,书中难免有不足之处,敬请读者批评指正。 <div>编 者 2018年1月</div>显示全部信息免费在线读第3章Android用户界面设计 3.1 用户界面组件包widget和View类 1.用户界面组件包widget Android系统为开发人员提供了丰富多彩的用户界面组件,通过使用这些组件可以设计出炫丽的界面。大多数用户界面组件放置在android.widget包中。widget包中的常用组件如表3-1所示。表3-1 widget包中的常用组件 可视化组件说 明Button按钮 CalendarView日历视图 CheckBox复选框 EditText文本编辑框 ImageView显示图像或图标,并提供缩放、着色等各种图像处理方法 ListView列表框视图MapView地图视图RadioGroup单选按钮组 Spinner下拉列表TextView文本标签WebView网页浏览器视图 Toast消息提示 2.View类 View是用户界面组件的共同父类,几乎所有的用户界面组件都是继承View类实现的,如TextView、Button、EditText等。 对于View类及其子类的属性,可以在界面布局文件中设置,也可以通过成员方法在Java代码文件中动态设置。View类的常用属性和方法如表3-2所示。 表3-2 View类的常用属性和方法属 性对 应 方 法说 明android:backgroundsetBackgroundColor (int color)设置背景颜色android:idsetId(int)为组件设置可通过findViewById方法获取的标识符续表属 性对 应 方 法说 明android:alphasetAlpha(float)设置透明度,取值范围为0~1