51CTO学院资深讲师、资深Android开发项目经理呕心沥血之作!
51CTO学院Android培训推荐用书,附赠价值100元的“51CTO学院学习卡”!
视频教学:14.2小时高品质配套教学视频 + 33.5小时Android专题教学视频(赠送)!
注重实战:详解201个Android经典实例的开发过程,提高实战开发水平
内容全面:涵盖Android环境搭建、界面开发、事件处理、本地开发、网络开发、多媒体影音开发和服务开发等领域
由浅入深:书中的实例遵循从基础到高级的学习梯度,适合不同层次的读者阅读
技巧丰富:给出了大量的开发技巧,攻克各种疑点和难点,迅速提高开发水平
代码经典:每个实例都给出了详细的源代码,并提供了大量的注释,便于读者研读
贴心专栏:每个实例后都专门设有特色栏目“实例拓展”,以拓宽读者的知识面
答疑服务:提供QQ群、论坛和邮件等多种答疑方式,保证学习畅通无阻。
《Android开发范例实战宝典)》全面、系统地介绍了200多个常用的Android应用开发实例,这些实例紧跟技术趋势,内容基本覆盖了Android开发的方方面面,几乎涉及Android开发的所有重要知识。书中给出了每个实例的实现过程,并精讲了每个实例的重点代码。作者专门为每一个实例都录制了配套的教学视频(共14.2小时),以帮助读者更好地学习,这些教学视频和书中的完整实例源代码一起收录于配书光盘中。另外,光盘中还赠送了大量的Android开发教学视频及其他资料。
《Android开发范例实战宝典(配光盘)》共分为9章。主要内容包括:Android简介及平台架构知识;Android开发者必备利器——搭建开发环境;Android中基本控件、常见布局及高级组件的使用;Android中回调函数的事件处理、监听器的事件处理及多线程处理;Android中系统Intent的使用及自定义Intent的使用;Android的数据存储知识,重点介绍文件操作、ContentProvider及资源文件;Android中的服务和广播;Android网络编程;Android中的多媒体开发。
《Android开发范例实战宝典》适合有一定Java基础,想快速提高Android开发水平的人员阅读。对于Android开发爱好者及经常使用Android做开发的程序员,本书更是一本不可多得的案头必备参考书。
超值、大容量DVD光盘
本书实例源文件
14.2小时配套教学视频
8.7小时Android开发入门教学视频
13.8小时Android开发实战教学视频
11小时Android项目案例开发教学视频
第3章让你的程序变成美女
对于Android应用开发最基本的就是用户界面(GUI,GraphicsUserInterface)的开发。如果一个应用没有好的界面,那么将很难吸引最终用户。所以用户界面的开发对于Android应用开发是很重要的,也是我们首先要掌握的。
Android系统中提供了大量的UI组件,这些组件小到简单的文本框TextView,大到浏览器核心控件WebView,都可以给用户提供不同的功能感受。我们开发者只要根据用户的需求将这些UI组件组合在一起,就像拼装一辆汽车。尽量在有限的手机屏幕中给用户带来无限的美感体验,那么何愁你的应用没有人用呢?
本章主要通过各种应用界面的实例介绍,来带领大家一起学习Android的界面开发。希望大家阅读完本章内容后,可以根据自己的需求独立完成各种界面的开发。
3.1Android中基本控件的使用
范例001更改文字标签的内容
1.实例简介
在上一章中我们搭建完成Android的开发环境,新建立了一个Android工程,在AVD中运行可以看到在一个界面中显示Helloworld的文字标签。这是我们的第一个Android程序,但是这个程序过于死板,如何让文字标签显示我们想让它显示的文字内容呢?这个实例会带领我们通过两种方式修改文字标签的文字内容,方式1:通过控件的xml布局中的text属性修改TextView的文字,方式2:通过在Java代码中得到TextView对象,然后通过对象的setText方法来设置TextView的文字。
2.运行效果
该实例运行效果如图3.1所示。
3.实例程序讲解
方式1:通过修改xml布局文件中TextView
控件的text属性来完成如上效果,主要修改的地
方在我们建立的工程下的res/layout/activity_main.xml。代码如下。
图3.1在界面中显示IamaAndroidDeveloper
01<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
02xmlns:tools="http://schemas.android.com/tools"
03android:layout_width="match_parent"
04android:layout_height="match_parent"
05android:paddingBottom="@dimen/activity_vertical_margin"
06android:paddingLeft="@dimen/activity_horizontal_margin"
07android:paddingRight="@dimen/activity_horizontal_margin"
08android:paddingTop="@dimen/activity_vertical_margin"
09tools:context=".MainActivity">
10
11<TextView
12android:layout_width="wrap_content"
13android:layout_height="wrap_content"
14android:text="IamaAndroidDeveloper"/>
15
16
这是我们的Activity的布局文件,其中第11~14行构造了一个TextView控件,在TextView控件中text属性就代表这个文本标签上显示的文字,所以只要修改text节点的值为你想输入的字符串即可,如第14行的修改。
方式2:在Java代码中得到TextView对象,然后通过对象的setText方法来设置TextView的文字。要通过这种方式修改TextView的内容,步骤如下。
(1)在xml布局文件的TextView控件中加上id字段。
01<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/
android"
02xmlns:tools="http://schemas.android.com/tools"
03android:layout_width="match_parent"
04android:layout_height="match_parent"
05android:paddingBottom="@dimen/activity_vertical_margin"
06android:paddingLeft="@dimen/activity_horizontal_margin"
07android:paddingRight="@dimen/activity_horizontal_margin"
08android:paddingTop="@dimen/activity_vertical_margin"
09tools:context=".MainActivity">
10
11<TextView
12android:id="@+id/Tv"
13android:layout_width="wrap_content"
14android:layout_height="wrap_content"
15android:text="@string/hello_world"/>
16
17
如上面中代码的第12行,通过id节点给TextView对象加上唯一标示的id。这里需要注意的是id的值是自定义id,所以加入的方式为@+id/Tv。其中的Tv是我们的TextView的id。
(2)在代码中获得此TextView对象,通过setText方法修改此TextView的值。
主要修改的地方在我们建立的工程下的src/com.wyl.example/MainActivity.java,代码如下。
01packagecom.wyl.example;//当前包名
02//导入必备的包
03importandroid.os.Bundle;
04importandroid.app.Activity;
05importandroid.view.Menu;
06importandroid.widget.TextView;
07
08publicclassMainActivityextendsActivity{//定义MainActivity继承自Activity
09
10privateTextViewTv;//定义TextView的对象
11
12@Override
13protectedvoidonCreate(BundlesavedInstanceState){
14super.onCreate(savedInstanceState);//调用父类的onCreate方法
15setContentView(R.layout.activity_main);//通过setContentView方法设置当前页面的布局文件为activity_main
16Tv=(TextView)findViewById(R.id.Tv);//通过findViewById得到对应的TextView对象
17Tv.setText("IamaAndroidDeveloper");//通过TextView对象的setText设置文本标签的内容
18}
19@Override
20publicbooleanonCreateOptionsMenu(Menumenu){//当前Activity的菜单创建,本例没有用途
21//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.
22getMenuInflater().inflate(R.menu.main,menu);
23returntrue;
24}
25}
如上代码第10行定义了一个TextView对象,在第16行我们通过findViewById拿到了刚才定义了那个TextView的对象,在第17行通过TextView中的setText方法来修改TextView的值。
通过上面两种方法我们都可以达到修改文本标签内容的目的,相对来说第一种方法,是在程序加载的时候就确定了TextView的内容。第二种方法是在程序运行的时候确定了TextView的内容,所以如果你的文本标签的内容要根据程序运行过程中某些状态来变化的话,要选择第二种方法。例如,用户名标签,一般使用第一种方式,因为它一旦确定基本不再修改;如果是显示网络数据的文本标签,那么就要采用第二种方法了,这样才能根据程序的运行状态修改标签的内容。
4.实例扩展
扩展1:在xml布局文件中android:text的内容可以是字符串,也可以是系统的资源Id。
01<TextView
02android:id="@+id/Tv"
03android:layout_width="wrap_content"
04android:layout_height="wrap_content"
05android:text="@string/str"/>
如上面代码的第5行,其中@string/str就代表工程的str字符串资源,工程的字符串资源一般保存在res/values/strings.xml中。
01<?xmlversion="1.0"encoding="utf-8"?>
02
03
04Example01_01
05Settings
06Helloworld!
07hiAndroid
08
09
在strings.xml文件中的第7行,你可以看到str资源的值是hiAndroid,这就是你设置给TextView的真实内容了。
扩展2:在Java代码中修改TextView的值的话,setText方法有多种重载形式:
publicfinalvoidsetText(CharSequencetext)//设置文本标签内容值为text变量的值
publicfinalvoidsetText(intresid)//设置文本标签内容值为资源resid的值
publicvoidsetText(CharSequencetext,TextView.BufferTypetype)//设置内容值为Text的值type代表缓冲类型
publicfinalvoidsetText(intresid,TextView.BufferTypetype)//设置内容值资源resid的值type代表缓冲类型
publicfinalvoidsetText(char[]text,intstart,intlen)//设置内容为text数组的从第start位开始的后len个字符
范例002更改手机页面的背景色
1.实例简介
到目前为止,我们现在看到的页面的颜色都是系统默认的颜色值,如果我们想要在程序的执行过程中显示与众不同的页面,更改页面的背景颜色是最基本的思路。本实例就带领大家一起来学习如何更改页面的背景颜色。
2.运行效果
该实例运行效果如图3.2所示。
3.实例程序讲解
想要实现更改页面的背景,只需修改res/layout/activity_main.xml即可。代码如下:
01<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
02xmlns:tools="http://schemas.android.com/tools"
03android:layout_width="match_parent"
04android:layout_height="match_parent"
05android:paddingBottom="@dimen/activity_vertical_margin"
06android:paddingLeft="@dimen/activity_horizontal_margin"
07android:paddingRight="@dimen/activity_horizontal_margin"
08android:paddingTop="@dimen/activity_vertical_margin"
09android:background="@android:color/background_dark"
10tools:context=".MainActivity">
11
12<TextView
13android:layout_width="wrap_content"
14android:layout_height="wrap_content"
15android:textColor="@android:color/white"
16android:text="@string/hello_world"/>
17
18
这是我们的Activity的布局文件,其中第一个节点RelativeLayout代表当前页面布局效图3.2更改界面的背景为黑色,字体颜色为白色果为相对布局。第9行添加了android:background节点,并且其值设置成了@android:color/background_dark,其代表Android系统中的颜色资源background_dark。当然这里的值也可以是一个颜色值,如下:
android:background="#FF0000"
其中,#FF0000代表红色的颜色值,这样页面背景就被更改为红色。最优的一种方式是在工程中自定义颜色资源文件,将各种颜色值加入。在res/ralues/目录中建立colors.xml资源文件,内容为:
<?xmlversion="1.0"encoding="utf-8"?>
#FF0000
#00FF00
#0000FF
这样在布局文件中就可以通过如下代码来设置自定义的颜色资源了。
android:background="@color/green"
4.实例扩展
扩展1:在Android中设置任何一种控件的背景方式都一样,可以在对应的xml布局文件中设置也可以在Java代码中设置。在Java代码中设置控件背景的步骤如下:
(1)得到需要修改背景颜色的控件,通过findViewById方法。
(2)通过setBackgroundColor方法设置控件的背景颜色。
扩展2:对于Android中控件的背景的修改,不仅仅可以设置成单一颜色值,而且还可以将一张图片设置成控件的背景。实现方法与设置背景颜色相同。就是在对应的xml布局文件中给相应的控件加上如下代码:
android:background="@drawable/ic_launcher"
其中@drawable/ic_launcher代表工程目录中res/drawable/的ic_launcher.png图片。这样你的页面就以此图片为背景了。
……
第1章 打开Android世界的大门
1.1 Android的来龙去脉
1.1.1 Android的发展简介
1.1.2 Android的平台架构
1.2 本书的目的及范例应用范围
1.3 本书范例的使用方式
1.4 参考网站
第2章 Android开发者必备利器--开发环境搭建( 教学视频:14分钟)
2.1 搭建Android开发环境
2.1.1 准备工作
2.1.2 安装JDK,配置基本Java环境
2.1.3 安装Eclipse
2.1.4 安装Eclipse的ADT插件
2.1.5 获取Android SDK
2.1.6 在Eclipse中配置Android SDK
2.1.7 管理AVD
2.2 建立第一个Android程序
2.2.1 建立一个Android工程
2.2.2 Android程序的目录结构
2.3 开发必备利器
2.3.1 Logcat的使用
2.3.2 DDMS(Dalvik Debug Monitor Service)的使用
2.3.3 ADB(Android Debug Bridge)的使用
2.3.4 The Hierarchy Viewer的使用
2.3.5 Draw9-Patch的使用
2.3.6 真机测试
2.4 Android程序的基本组件
2.4.1 Activity组件介绍
2.4.2 ContentProvider组件介绍
2.4.3 Service组件介绍
2.4.4 BroadcastReceiver组件介绍
2.4.5 Intent组件介绍
2.5 小结
第3章 让你的程序变成美女( 教学视频:247分钟)
3.1 Android中基本控件的使用
范例001 更改文字标签的内容
范例002 更改手机页面的背景色
范例003 文字超链接
范例004 让你的文字标签更加丰富多彩
范例005 用户名密码输入框
范例006 电话号码输入框
范例007 更改输入框的文字字体
范例008 我同意上述条款的页面
范例009 爱好调查页面
范例010 政治面貌调查表
范例011 IT人员测试应用
范例012 应用中的关闭声音的按钮
范例013 应用中的音量调节效果
范例014 服务星级评价效果
范例015 页面加载中效果
范例016 日期获取框效果
范例017 时间获取框效果
范例018 日期时间弹出框效果
范例019 钟表显示效果
范例020 秒表应用
范例021 圆角按钮效果
3.2 Android中常见布局的使用
范例022 用户注册页面的制作
范例023 学生成绩列表页面的制作
范例024 登录页面的制作
范例025 开发模型图的页面
范例026 图片相框效果
范例027 商城专区效果
范例028 三字经阅读程序
范例029 计算器程序的页面设计
3.3 Android中高级组件的使用
范例030 单词搜索补全效果
范例031 多匹配补全效果
范例032 用户使用的操作系统调查表
范例033 电影票预售表格效果
范例034 文件表格列表效果
范例035 学生名单表
范例036 手机联系人列表效果
范例037 画廊图片浏览器
范例038 仿iPhone的CoverFlow效果
范例039 菜单弹出效果
范例040 打开文件的子菜单效果
范例041 文本框的复制粘贴全选菜单
范例042 仿UC浏览器的伪菜单效果
范例043 PopupMenu效果
范例044 PopupWindow效果
范例045 QQ客户端的标签栏效果
范例046 仿新浪微博的主页效果
范例047 程序退出的对话框
范例048 程序的关于对话框
范例049 电话服务评价对话框
范例050 数据加载成功的提示
范例051 网络图片加载成功的提示
范例052 模拟收到短信的状态栏提示
范例053 模拟数据下载的状态栏提示
3.4 小结
第4章 让你的程序和用户说话( 教学视频:149分钟)
4.1 Android中基于回调函数的事件处理
范例054 Activity的声明周期回调
范例055 用户名长度检测效果
范例056 打字游戏实现
范例057 长按播放TextView动画
范例058 按钮的快捷键
范例059 屏幕单击测试器
范例060 Activity内容加载完毕提示
范例061 横竖界面自动切换
范例062 动态添加联系人列表
4.2 Android中基于监听器的事件处理
范例063 宝宝看图识字软件
范例064 控件的拖动效果
范例065 Email格式的检测
范例066 隐藏导航栏
范例067 屏幕多点触摸测试器
范例068 图片的平移、缩放和旋转
范例069 图片浏览器滑动切换图片
范例070 简易画板
范例071 登录和注册页面的ViewFlipper效果
范例072 神庙逃亡的操作模拟效果
范例073 手势库的创建及手势识别
范例074 滑动切换Activity的背景效果
范例075 按钮控制小人儿移动
4.3 Android中多线程处理
范例076 异步请求广告图片
范例077 本地三国演义文本的异步加载
范例078 应用程序的启动动画
范例079 NBA球星信息介绍的网格视图
范例080 NBA球星信息介绍的列表视图
范例081 文件下载
范例082 中断文件下载
范例083 线程间通讯
范例084 本地图片加载速度测试器
范例085 Surface的读写刷新
范例086 按两次物理返回键退出程序
范例087 线程嵌套
范例088 异步任务加载网络图片
范例089 网站源代码查看器
范例090 终止异步任务操作
范例091 异步任务进度展示
4.4 小结
第5章 Android程序内部的信息传递者( 教学视频:81分钟)
5.1 Android中系统Intent的使用
范例092 Google搜索内容
范例093 打开浏览器浏览网页
范例094 电话拨号软件
范例095 分享短信
范例096 短信发送客户端
范例097 彩信分享客户端
范例098 Email发送客户端
范例099 启动多媒体播放
范例100 安装指定的应用程序
范例101 卸载指定的应用程序
范例102 打开照相机获取图片
范例103 打开系统图库获取图片
范例104 打开录音程序录音
范例105 打开已安装的应用程序信息
范例106 打开软件市场搜索应用
范例107 选择联系人功能
范例108 添加联系人功能
范例109 程序内部启动外部程序
范例110 启动Google地图显示某个位置
范例111 启动Google地图进行路径规划
5.2 Android中自定义Intent使用
范例112 登录页面功能
范例113 注册页面功能
范例114 获取随机验证码功能
范例115 模拟站内搜索
5.3 小结
第6章 Android的数据存储( 教学视频:70分钟)
6.1 Android中的文件操作
范例116 可记住用户名密码的登录界面
范例117 系统的设置界面
范例118 系统图片剪裁
范例119 SDCard信息查询
范例120 图片旋转保存
范例121 学生成绩管理系统
6.2 Android中的ContentProvider
范例122 音乐播放器
范例123 系统图片选择预览
范例124 系统的联系人
范例125 得到系统的音频文件
6.3 Android中的资源文件
范例126 全屏界面
范例127 小图堆积背景
范例128 自定义EditText样式
范例129 透明背景的Activity
范例130 圆角控件的制作
范例131 程序的国际化
6.4 小结
第7章 Android中的服务和广播( 教学视频:159分钟)
7.1 Android中的服务的使用
范例132 查看手机运行的进程列表
范例133 得到系统的唤醒服务
范例134 定时任务启动
范例135 发送状态栏信息
范例136 得到屏幕状态
范例137 程序中得到经纬度
范例138 振动器应用
范例139 获得当前网络状态
范例140 获得手机SIM卡信息
范例141 WiFi管理器
范例142 系统软键盘显示
范例143 打开系统行车模式
范例144 音量控制器
范例145 短信群发软件
范例146 电池状态查看器
7.2 Android中的广播的使用
范例147 飞行模式的切换
范例148 创建桌面快捷方式
范例149 程序开机自动启动
范例150 拍照物理键的功能定制
范例151 锁屏广播接收器
范例152 系统设置信息改变的广播
范例153 系统内存不足提醒
范例154 接受耳机插入广播
范例155 手机区域设置更改监听器
范例156 SDCard插入的广播
范例157 SDCard移除的广播
范例158 APK安装完成的广播
范例159 APK卸载完成的广播
范例160 外部电源接入的广播
范例161 重启系统的广播
范例162 断开电源的广播
范例163 墙纸改变的广播
范例164 电话黑名单
范例165 短信接收的广播
范例166 短信发送的广播
范例167 电池电量低的广播
范例168 音乐播放器
7.3 小结
第8章 Android的网络编程( 教学视频:61分钟)
8.1 网络请求
范例169 在线天气查询
范例170 在线百度搜索
范例171 网络图片下载器
范例172 文件上传
范例173 异步图片加载
范例174 UDP网络通信
范例175 在线音乐播放
范例176 在线视频播放
范例177 应用程序在线更新
8.2 数据格式解析
范例178 DOM方式解析XML
范例179 SAX方式解析XML
范例180 PULL方式解析XML
范例181 内置JSON解析
范例182 Gson解析JSON
8.3 小结
第9章 Android中的多媒体开发( 教学视频:71分钟)
9.1 Android中多媒体应用开发
范例183 屏幕方向改变
范例184 调用系统相机拍照
范例185 录音机
范例186 录像机
范例187 手电筒应用
范例188 计时器
范例189 语音识别功能
范例190 语音转换文本
范例191 TTS文字朗读
范例192 本地音频播放
范例193 音效播放
范例194 播放本地视频
范例195 加速度传感器应用
范例196 光强度查看器
范例197 微信摇一摇功能
9.2 桌面插件开发
范例198 切换壁纸插件
范例199 倒计时插件
范例200 日期插件
范例201 电池状态显示插件
9.3 小结
★和武永亮老师结缘于51CTO学院。他在学院发布的学习视频深受学员们的欢迎,尤其是《Android开发从零到实战视频教程》,更是异常火爆。更让人欣喜的是,武老师用心编写的这本《Android开发范例实战宝典》很快就要和读者见面了。相信这本书无论是对51CTO学院的学员,还是对自学Android开发的人员,都将带来很大帮助。
——51CTO学院高级运营经理 曹亚莉