![Android开发实例大全_第1页](http://file4.renrendoc.com/view11/M02/35/1A/wKhkGWYAdAiANnJqAABF2WG81kY087.jpg)
![Android开发实例大全_第2页](http://file4.renrendoc.com/view11/M02/35/1A/wKhkGWYAdAiANnJqAABF2WG81kY0872.jpg)
![Android开发实例大全_第3页](http://file4.renrendoc.com/view11/M02/35/1A/wKhkGWYAdAiANnJqAABF2WG81kY0873.jpg)
![Android开发实例大全_第4页](http://file4.renrendoc.com/view11/M02/35/1A/wKhkGWYAdAiANnJqAABF2WG81kY0874.jpg)
![Android开发实例大全_第5页](http://file4.renrendoc.com/view11/M02/35/1A/wKhkGWYAdAiANnJqAABF2WG81kY0875.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android开发实例大全注:因内容过长上传受限制,本文档只显示部分内容,完整版文档请下载此文档后留言谢谢。目录\h第1章UI布局实例集锦\h实例001:使用线性布局(LinearLayout)来布局屏幕\h实例002:使用相对布局(RelativeLayout)来布局屏幕\h实例003:使用表格布局(TableLayout)来布局屏幕\h实例004:使用绝对布局(AbsoluteLayout)来布局屏幕\h实例005:使用标签布局(TabLayout)来布局屏幕\h实例006:使用层布局(FrameLayout)\h实例007:创建一个桌面组件Widget\h实例008:在屏幕中实现一个按钮效果\h实例009:在屏幕中显示文字\h实例010:在屏幕中显示编辑框\h实例011:在屏幕中显示复选框\h实例012:在屏幕中显示单选框\h实例013:在屏幕中显示下拉列表框\h实例014:在屏幕中实现自动输入文本效果\h实例015:使用日期选择器控件DatePicker\h实例016:自动选择一个输入时间\h实例017:实现屏幕自动滚动\h实例018:实现一个进度条效果\h实例019:开发一个评分程序\h实例020:在屏幕中显示一幅指定的图片\h实例021:设置一幅图片作为按钮来使用\h实例022:实现QQ空间中的显示照片效果\h实例023:实现书架展示排列布局效果\h实例024:实现树形菜单布局效果\h第2章控件实例集锦\h实例025:显示在文本框中输入的信息\h实例026:使用RadioGroup控件实现选项选择功能\h实例027:使用CheckBox控件实现同意条款效果\h实例028:使用Spinner控件实现选项选择\h实例029:使用Gallery控件实现个人相簿功能\h实例030:开发一个文件搜索程序\h实例031:单击按钮后实现按钮置换\h实例032:模拟实现一个时钟界面效果\h实例033:联合使用DatePicker和TimePicker来选择日期和时间\h实例034:动态分隔手机屏幕\h实例035:使用ListActivity实现动态菜单列表\h实例036:加载手机磁盘中的文件\h实例037:实现抽屉样式效果\h实例038:在屏幕中动态显示多种对话框\h实例039:手机秘书——重要事情提醒\h实例040:动态添加或删除菜单\h实例041:自定义Android控件实现单选按钮\h实例042:使用自定义控件在屏幕中绘制一条虚线\h实例043:在屏幕中实现手风琴效果\h实例044:在屏幕中实现有秒针的时钟\h实例045:修饰屏幕中的Button按钮\h实例046:在屏幕中实现定时器效果\h实例047:设置屏幕中控件的样式\h第3章自动化服务实例集锦\h实例048:自动获取手机屏幕的分辨率\h实例049:自动获取手机电池的剩余电量\h实例050:来电时自动发送信息提醒\h实例051:获取手机存储卡的容量\h实例052:操作存储卡和内存卡中的数据\h实例053:设置闹钟\h实例054:实现黑名单来电自动静音处理\h实例055:设置一个自动开机界面\h实例056:更换手机屏幕背景图片系统\h实例057:设置自动更换手机桌面背景\h实例058:自动控制后台系统服务\h实例059:在屏幕中拖动一个按钮\h实例060:启动和关闭AlarmManager服务\h实例061:自动拦截黑名单\h第4章数据存储实例集锦\h实例062:在屏幕中显示SharedPreferences中存储的信息\h实例063:演示数据添加、删除等操作\h实例064:编写一个手机日记本程序\h实例065:使用ContentProvider开发一个手机日记本\h实例066:使用文件保存数据\h实例067:将网上的图片保存到SD卡并在手机中显示出来\h实例068:保存联系人信息\h实例069:使用文件方式保存信息\h实例070:读取上次开机时保存的信息\h第5章电话和短信实例集锦\h实例071:编写一个拨号程序\h实例072:发送一条短信\h实例073:单击按钮实现拨号功能\h实例074:一个通用发短信程序\h实例075:收到短信后用E-mail邮件进行通知\h实例076:实现触屏拨号功能\h实例077:一个短信群发程序\h实例078:来电后自动发送邮件通知\h实例079:监听手机拨接状态\h实例080:检查短信是否发送成功\h第6章图形图像实例集锦\h实例081:在屏幕中绘制一个矩形\h实例082:在屏幕中绘制一个画布\h实例083:实现水纹的透明效果\h实例084:渲染几何图形\h实例085:用图片为背景实现动画效果\h实例086:在手机屏幕中实现Frame动画效果\h实例087:对图片进行缩放处理\h实例088:旋转屏幕中的图片\h实例089:实现旗帜飞扬的效果\h实例090:模拟构建一个3D场景效果\h实例091:模拟实现粒子系统效果\h实例092:在Canvas中写文字\h实例093:移动屏幕中的图片\h实例094:在屏幕中绘制一个三维圆柱体\h实例095:获取并显示图片的宽和高\h实例096:编写一个手机屏保程序\h实例097:以触摸方式移动图片\h实例098:显示存储卡中的图片信息\h实例099:在手机屏幕中显示系统内的图片信息\h第7章和网络有关的实例集锦\h实例100:传递HTTP参数\h实例101:在屏幕中使用HTML程序\h实例102:在手机中浏览网页\h实例103:使用内置浏览器打开网页\h实例104:显示QQ空间中的照片\h实例105:通过RSS系统在线浏览新闻\h实例106:下载网络图片作为手机背景\h实例107:将文件上传至服务器\h实例108:开发一个移动博客发布器\h实例109:远程下载并安装一个软件\h实例110:控制蓝牙系统\h实例111:解析并生成XML文件\h实例112:获取某个指定网页的HTML源码\h实例113:使用PULL解析XML数据\h实例114:采用POST方式向服务器传递数据\h第8章多媒体实例集锦\h实例115:播放一个指定的MP3文件\h实例116:调节手机音量的大小\h实例117:实现相机预览和拍照功能\h实例118:在手机中播放影片\h实例119:手机录音系统\h实例120:设置手机中的铃声\h实例121:在线播放网络中的MP3\h实例122:在线下载音乐作为手机铃声\h实例123:播放GIF格式的动画\h实例124:在手机中播放MP4视频\h实例125:在线观看3GP视频\h第9章Google地图实例集锦\h实例126:定位当前位置的坐标\h实例127:在手机中使用Google地图\h实例128:在地图中定位输入的坐标\h实例129:在地图中快速查询某个位置\h实例130:随着手机的移动自动更新位置\h实例131:在手机地图中描绘线路并计算线路距离\h实例132:在Google地图中显示指定的位置\h实例133:在手机地图中查询一个地址\h实例134:在手机中实现地址查询\h实例135:开发一个路径导航系统\h第10章GoogleAPI实例集锦\h实例136:模拟验证官方账号\h实例137:在手机中开发一个Google搜索程序\h实例138:在手机中编写一个翻译软件\h实例139:生成一个二维码\h实例140:使用GoogleChartAPI生成二维码\h第11章平板应用\h实例141:开发一个音乐播放器\h实例142:开发一个在线天气播报系统\h实例143:开发一个网页浏览程序\h实例144:使用文件来保存音乐状态\h实例145:在屏幕中显示不同的进度条效果\h实例146:勇敢派递员游戏\h第12章游戏应用\h实例147:一个简单的贪吃蛇游戏\h实例148:开发一个魔塔游戏\h实例149:疯狂足球游戏\h实例150:21点游戏\h实例151:俄罗斯方块游戏\h第13章Android程序优化\h实例152:测试计算机的性能\h实例153:测试内存性能\h实例154:优化Android模拟器\h实例155:使用merge标签优化UI界面\h实例156:优化AndroidLayout\h实例157:优化Bitmap图片\h第14章可穿戴设备开发精粹\h实例158:使用SensorSimulator传感器\h实例159:使用磁场传感器\h实例160:使用加速度传感器\h实例161:使用姿态传感器\h实例162:使用温度传感器\h第15章综合实例——手机地图系统\h实例163:使用Google地图开发一个综合地图系统\h15.1项目分析\h15.1.1规划UI界面\h15.1.2数据存储设计\h15.2具体实现\h15.2.1新建工程\h15.2.2主界面\h15.2.3新建界面\h15.2.4设置界面\h15.2.5帮助界面\h15.2.6地图界面\h15.2.7数据存取\h15.2.8实现Service服务\h15.3发布自己的作品来赢利\h15.3.1申请成为会员\h15.3.2生成签名文件\h15.3.3使用签名文件\h15.3.4发布\h第16章综合实例——音乐播放器系统\h实例164:开发一个音乐播放器\h16.1项目介绍\h16.1.1项目背景介绍\h16.1.2项目目的\h16.1.3对读者的意义\h16.2需求分析\h16.2.1构成模块\h16.2.2功能结构图\h16.2.3系统功能说明\h16.2.4总体目标\h16.3设计数据库\h16.3.1字段设计\h16.3.2数据库连接\h16.3.3创建数据库\h16.3.4操作数据库\h16.3.5数据显示\h16.4具体编码\h16.4.1服务信息主界面\h16.4.2播放器主界面\h16.4.3播放列表功能\h16.4.4菜单功能模块\h16.4.5播放设置界面\h16.4.6设置显示歌词\h16.4.7文件浏览器模块\h第17章体育类游戏——NBA激情投篮\h实例165:NBA激情投篮\h17.1项目介绍\h17.1.1意义和技术分析\h17.1.2策划游戏\h17.1.3准备工作\h17.2项目架构\h17.2.1总体架构\h17.2.2规划类\h17.3具体编码\h17.3.1编写主类LanqiuActivity\h17.3.2编写常量类\h17.3.3设计游戏试玩界面\h17.3.4绘制游戏场景\h第18章综合邮件系统\h实例166:开发一个综合邮件系统\h18.1项目介绍\h18.1.1项目背景介绍\h18.1.2项目目的\h18.2系统需求分析\h18.2.1构成模块\h18.2.2系统流程\h18.2.3功能结构图\h18.2.4系统功能说明\h18.2.5系统需求\h18.3数据存储设计\h18.3.1用户信息类\h18.3.2SharedPreferences\h18.4具体编码\h18.4.1欢迎界面\h18.4.2系统主界面\h18.4.3邮箱类型设置\h18.4.4邮箱收取设置\h18.4.5邮箱发送设置\h18.4.6邮箱用户检查\h18.4.7设置用户别名\h18.4.8用户邮件编辑\h18.5总结\h第1章UI布局实例集锦外观向来是工业产品的设计核心,是激发用户购买欲望的主要因素之一。本章讲的UI布局指的是手机界面布局,一款手机的屏幕界面效果是吸引用户购买的重要元素之一,因为消费者更倾向于选择界面美观的产品。在设计优美的界面之前,一定要先对屏幕进行布局。本章将通过具体实例的实现过程介绍在Android系统中规划UI界面的方法。\h实例001:使用线性布局(LinearLayout)来布局屏幕源码路径:daima\001知识点介绍在Android布局中,需要了解视图容器组件—ViewGroup的概念,使用视图容器组件ViewGroup的语法格式如下:
Android.view.Viewgroup
ViewGroup的功能是包含并管理下级系列的Views和其他ViewGroup,是一个布局的基类。类ViewGroup好像一个View容器,负责对添加进来的View进行布局处理。一个ViewGroup可以添加到另一个ViewGroup中去。这是因为ViewGroup也继承于View.Viewgroup类,是其他容器类的基类。它们之间的关系如图1-1所示。图1-1各个类的继承关系我们知道,一个Android程序是由一个或多个Activity组成的,每个Activity是一个UI容器,Activity本身不在用户界面中显示出来。在Android中,类View起了非常重要的作用,View是一个最基本的UI类,几乎所有的UI组件都是继承于View而实现的。使用View的语法格式如下所示。
android.view.View
线性布局即LinearLayout布局,是Android屏幕中常用的布局方式之一,功能是垂直或水平地显示ViewGroup的子视图(View)元素。具体实现使用Eclipse创建一个名为“001”的Android工程。编写布局文件“res/layout/main.xml”,代码如下所示。
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<Buttonandroid:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第一个按钮"
android:layout_weight="1"
/>
<Buttonandroid:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第二个按钮"
android:layout_weight="1"
/>
<Buttonandroid:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第三个按钮"
android:layout_weight="1"
/>
<Buttonandroid:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第四个按钮"
android:layout_weight="1"
/>
<Buttonandroid:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第五个按钮"
android:layout_weight="1"
/>
</LinearLayout>
在上述代码中,在根LinearLayout视图组(ViewGroup)中包含了5个按钮(Button),它的子元素是以线性方式水平布局的。上述代码的运行效果如图1-2所示。图1-2LinearLayout布局效果\h实例002:使用相对布局(RelativeLayout)来布局屏幕源码路径:daima\002知识点介绍相对布局是设计用户界面的有力工具,因为它消除了嵌套视图组。相对布局是指一个ViewGroup以相对位置显示它的子视图(View)元素,一个视图可以指定相对于它的兄弟视图的位置(如在给定视图的左边或者下面)或相对于RelativeLayout的特定区域的位置(如底部对齐或中间偏左)。RelativeLayout允许子元素指定它们相对于其他元素或父元素的位置(通过ID指定)。所以可以用右对齐、上下对齐或置于屏幕中央的形式来排列两个元素。如果第一个元素在屏幕的中央,那么相对于这个元素的其他元素将以屏幕中央的相对位置来排列。如果使用XML来指定这个布局,在定义它之前,被关联的元素必须定义。RelativeLayout结构如图1-3所示。图1-3RelativeLayout结构具体实现使用Eclipse创建一个名为“002”的Android工程。编写布局文件“res/layour/main.xml”,代码如下所示。
<TextView
android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="请输入信息:"/>
<EditText
android:id="@+id/entry"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"
android:layout_below="@id/label"/>
<Button
android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/entry"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dip"
android:text="确定"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/ok"
android:layout_alignTop="@id/ok"
android:text="取消"/>
执行后的效果如图1-4所示。图1-4执行效果在上述实例中,在RelativeLayout视图组中包含了一个TextView、一个EditView和两个Button,并且使用了下面的属性代码来设置布局的显示。
android:layout_below="@id/label"/>
android:layout_below="@id/entry"
android:layout_alignParentRight="true"
android:layout_toLeftOf="@id/ok"
android:layout_alignTop="@id/ok"
在使用相对布局方式时,正是使用这些类似的属性来定位视图到你想要的位置的,它们的值是你参照的视图的ID。这些属性的意思很简单,就是英文单词的直译,这里就不多做介绍了。\h实例003:使用表格布局(TableLayout)来布局屏幕源码路径:daima\003知识点介绍表格布局(TableLayout)其实是一个ViewGroup以表格显示它的子视图(View)元素,即行和列标识一个视图的位置。其实Android的表格布局与HTML中的表格布局非常类似,TableRow就像HTML表格的<tr>标记。表格布局通常用于把子元素放入行与列中,不显示行、列或单元格边界线,但是单元格不能横跨行,像HTML中一样。表格布局效果如图1-5所示。图1-5表格布局效果在使用表格布局时需要了解如下3点。android:shrinkColumns:对应的方法是setShrinkAllColumns(boolean),作用是设置表格的列是否收缩(列编号从0开始,下同),如果有多列则用逗号隔开(下同),如android:shrinkColumns="0,1,2",表示表格的第1、2、3列的内容是收缩的以适合屏幕,不会挤出屏幕。android:collapseColumns:对应的方法是setColumnCollapsed(int,boolean),作用是设置表格的列是否隐藏。android:stretchColumns:对应的方法是setStretchAllColumns(boolean),作用是设置表格的列是否拉伸。具体实现使用Eclipse创建一个名为“003”的Android工程。编写布局文件“res/layour/main.xml”,代码如下所示。
<TableRow>
<Buttonandroid:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第一个按钮"
android:layout_column="0"
/>
<Buttonandroid:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第二个按钮"
android:layout_column="1"
/>
</TableRow>
<TableRow><!--row2-->
<Buttonandroid:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第三个按钮"
android:layout_column="1"
/>
<Buttonandroid:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第四个按钮"
android:layout_column="1"
/>
</TableRow>
<TableRow>
<Buttonandroid:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第五个按钮"
android:layout_column="2"
/>
</TableRow>
执行后的效果如图1-6所示。图1-6执行效果\h实例004:使用绝对布局(AbsoluteLayout)来布局屏幕源码路径:daima\004知识点介绍绝对布局(AbsoluteLayout)是指一个ViewGroup以绝对方式显示它的子视图(View)元素,即以坐标的方式来定位在屏幕上位置。这种布局方式很好理解,在布局文件中编程设置View的坐标,从而绝对地定位。AbsoluteLayout可以让子元素指定准确的x和y坐标值,并显示在屏幕上。其中坐标(0,0)为左上角,当向下或向右移动时,坐标值将变大。AbsoluteLayout没有页边框,允许元素之间互相重叠(尽管不推荐)。我们通常不推荐使用AbsoluteLayout,除非有正当理由使用它,因为它会使界面代码太过刚性,以至于在不同的设备上可能不能很好地工作。AbsoluteLayout效果如图1-7所示。图1-7AbsoluteLayout效果具体实现使用Eclipse创建一个名为“004”的Android工程。编写布局文件“res/layour/main.xml”,代码如下所示。
<AbsoluteLayoutxmlns:android="/apk/res/android"
android:id="@+id/AbsoluteLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextViewandroid:id="@+id/txtIntro"
android:text="使用绝对布局"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_x="20dip"
android:layout_y="20dip">
</TextView>
</AbsoluteLayout>
执行后的效果如图1-8所示。图1-8执行效果\h实例005:使用标签布局(TabLayout)来布局屏幕源码路径:daima\005知识点介绍标签布局(TabLayout)是一个ViewGroup以标签的方式显示它的子视图(View)元素,就像在Firefox中的一个窗口中显示多个网页一样。为了创建一个标签UI(tabbedUI),需要使用TabHost和TabWidget。TabHost必须是布局的根节点,它包含显示标签的TabWidget和显示标签内容的FrameLayout。具体实现使用Eclipse创建一个名为“005”的Android工程。编写布局文件“res/layour/main.xml”,代码如下所示。
<?xmlversion="1.0"encoding="utf-8"?>
<TableLayoutxmlns:android="/apk/res/android"
android:layout_width="fill_parent"android:layout_height="fill_parent">
<TableRow>
<Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"
android:text="7"/>
<Buttonandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:text="8"
/>
<Buttonandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:text="9"
/>
<Buttonandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:text="/"
/>
</TableRow>
<TableRow>
<Buttonandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:text="4"
/>
<Buttonandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:text="5"
/>
<Buttonandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:text="6"
/>
<Buttonandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:text="*"
/>
</TableRow>
<TableRow>
<Buttonandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:text="1"
/>
<Buttonandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:text="2"
/>
<Buttonandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:text="3"
/>
<Buttonandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:text="."
/>
</TableRow>
<TableRow>
<Buttonandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:text="0"
/>
<Buttonandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:text="="
/>
<Buttonandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:text="-"
/>
<Buttonandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:text="+"
/>
</TableRow>
</TableLayout>
执行后将显示一个计算器的效果,如图1-9所示。图1-9执行效果\h实例006:使用层布局(FrameLayout)源码路径:daima\006知识点介绍层布局(FrameLayout)是最简单的一种布局方法,它在屏幕上设置一个空白备用区域,这样就可以在其中填充某一个单一对象,如一张图片。所有的子元素被固定在屏幕的左上角。但是我们不能为FrameLayout中的一个子元素指定一个位置,后一个子元素将会直接在前一个子元素之上进行覆盖填充,把它们部分或全部挡住,除非后一个子元素是透明的。具体实现使用Eclipse创建一个名为“006”的Android工程。编写布局文件“res/layour/main.xml”,代码如下所示。
<?xmlversion="1.0"encoding="utf-8"?>
<FrameLayoutxmlns:android="/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:text="big"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="50pt"/>
<TextView
android:text="middle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20pt"/>
<TextView
android:text="small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10pt"/>
</FrameLayout>
因为字体多层重叠所以会发生重影效果,执行后效果如图1-10所示。图1-10执行效果\h实例007:创建一个桌面组件Widget源码路径:daima\007\src\m\MainActivity.java知识点介绍Widget是一个桌面组件,功能是实现桌面布局。Android本身已经自带了时钟、音乐播放器、相框和Google搜索4个Widget程序,开发人员可以自行开发自己需要的更加美观、功能更加丰富的程序。所以,当我们购买一款Android手机产品时,在桌面上都显示了一些诸如天气预报、日历等经常用到的信息。具体实现使用Eclipse创建一个MainActivity作为应用程序的入口,自动生成的主文件是MainActivity.java,其主要代码如下所示。
packagem.usewidget;
importm.usewidget.R;
importandroid.app.Activity;
importandroid.content.Intent;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.Button;
publicclassMainActivityextendsActivity{
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
在上述代码中,关联了一个模板布局文件main.xml。这样,就可以在里面继续添加需要的控件了,如按钮、列表框、进度条和图片等。编写布局文件main.xml,主要代码如下所示。
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
</LinearLayout>
通过上述代码,在手机屏幕中使用了Widget组件。执行后不会显示任何信息,这是因为没有在里面添加任何元素。由此可见,Widget组件只是起了一个“容器”的作用,我们只需把要显示的屏幕元素添加到这个“容器”里面即可。注意:本章接下来的实例代码,都保存在本实例项目中,即本章剩余实例的源码都保存在“007\src\m”目录下。\h实例008:在屏幕中实现一个按钮效果源码路径:daima\007\src\m知识点介绍Button控件即按钮控件,在日常应用时,当单击按钮后会触发一个事件,这个事件会实现用户需要的功能。如用户输入一些信息,单击【确定】或【取消】按钮后会实现对应的一些操作功能。Android中的Button控件是最基本的常用控件,每一个Button都会使用系统提供的默认背景作为按钮的默认风格。但是这个系统默认的背景可能会因为不同的设备或者同一个平台系统的不同版本而不同,如WindowsXP和Windows2000的默认UI差别很大。在实际项目中设计界面风格时,往往需要让使用中的Button有一个“更加漂亮”的外观风格。无论是初学者还是高手,通常都使用StateListDrawable(状态图片列表)来实现“更加漂亮”的外观风格,这种理念是根据Button的不同状态来用自己设计的背景图片替换Button默认的背景图片的功能,从而让这个Button达到想要的设计效果。具体实现修改布局文件main.xml,在里面添加一个TextView和一个Button,主要代码如下所示。
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/show_TextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Button
android:id="@+id/Click_Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="单击"
/>
</LinearLayout>
在文件mainActivity.java中,先通过findViewByID()获取TextView文本和Button按钮的资源,然后为Button按钮添加事件监听器Button.OnClickListener(),最后定义处理事件处理程序。其主要代码如下所示。
//获取TextView文本和Button按钮的资源
show=(TextView)findViewById(R.id.show_TextView);
press=(Button)findViewById(R.id.Click_Button);
//为Button按钮添加事件监听器Button.OnClickListener()
press.setOnClickListener(newButton.OnClickListener(){
@Override
publicvoidonClick(Viewv){
}
});
//定义事件处理程序
press.setOnClickListener(newButton.OnClickListener(){
@Override
publicvoidonClick(Viewv){
//单击按钮后输出一段文本
show.setText("按钮被单击了一下");
}
});
执行后首先显示一个“按钮+文本”样式的界面,当单击【这是button】按钮后会执行单击事件,执行定义的事件处理程序,如图1-11所示。图1-11执行效果\h实例009:在屏幕中显示文字源码路径:daima\007\src\m知识点介绍在手机屏幕中可以通过文本框控件TextView来显示文本。使用TextView控件的基本步骤如下所示。导入TextView包,具体代码如下所示。
importandroid.widget.TextView;
在文件mainActivity.java中声明一个TextView,如下面的代码所示。
privateTextViewmTextView01;
在文件main.xml中定义一个TextView对象TextView01,如下面的代码所示。
<TextViewandroid:text="TextView01"
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="61px"
android:layout_y="69px">
</TextView>
利用findViewById()方法获取main.xml中的TextView,如下面的代码所示。
mTextView01=(TextView)findViewById(R.id.TextView01);
设置TextView标签内容,如下面的代码所示。
Stringstr_2="欢迎来到Android世界...";
mTextView01.setText(str_2);
设置文本超链接,如下面的代码所示。
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="all"
android:text="请访问Android开发者:
/index.html">
</TextView>
具体实现修改文件mainActivity.java,在里面分别添加12个TextView对象变量,一个LinearLayout对象变量、一个整数变量WC、一个LinearLayout.LayoutParams变量,其主要代码如下所示。
/*定义使用的对象*/
privateLinearLayoutmyLayout;
privateLinearLayout.LayoutParamslayoutP;
privateintWC=LinearLayout.LayoutParams.WRAP_CONTENT;
privateTextViewblack_TV,blue_TV,cyan_TV,dkgray_TV,
gray_TV,green_TV,ltgray_TV,magenta_TV,red_TV,
transparent_TV,white_TV,yellow_TV;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
/*实例化一个LinearLayout布局对象*/
myLayout=newLinearLayout(this);
/*设置LinearLayout的布局为垂直布局*/
myLayout.setOrientation(LinearLayout.VERTICAL);
/*设置LinearLayout布局的背景图片*/
myLayout.setBackgroundResource(R.drawable.back);
/*加载主屏布局*/
setContentView(myLayout);
/*实例化一个LinearLayout布局参数,用来添加View*/
layoutP=newLinearLayout.LayoutParams(WC,WC);
/*构造实例化TextView对象*/
constructTextView();
/*把TextView添加到LinearLayout布局中*/
addTextView();
/*设置TextView文本颜色*/
setTextViewColor();
/*设置TextView文本内容*/
setTextViewText();
}
/*设置TextView文本内容*/
publicvoidsetTextViewText(){
black_TV.setText("黑色");
blue_TV.setText("蓝色");
cyan_TV.setText("青绿色");
dkgray_TV.setText("灰黑色");
gray_TV.setText("灰色");
green_TV.setText("绿色");
ltgray_TV.setText("浅灰色");
magenta_TV.setText("红紫色");
red_TV.setText("红色");
transparent_TV.setText("透明");
white_TV.setText("白色");
yellow_TV.setText("黄色");
}
/*设置TextView文本颜色*/
publicvoidsetTextViewColor(){
black_TV.setTextColor(Color.BLACK);
blue_TV.setTextColor(Color.BLUE);
dkgray_TV.setTextColor(Color.DKGRAY);
gray_TV.setTextColor(Color.GRAY);
green_TV.setTextColor(Color.GREEN);
ltgray_TV.setTextColor(Color.LTGRAY);
magenta_TV.setTextColor(Color.MAGENTA);
red_TV.setTextColor(Color.RED);
transparent_TV.setTextColor(Color.TRANSPARENT);
white_TV.setTextColor(Color.WHITE);
yellow_TV.setTextColor(Color.YELLOW);
}
/*构造实例化TextView对象*/
publicvoidconstructTextView(){
black_TV=newTextView(this);
blue_TV=newTextView(this);
cyan_TV=newTextView(this);
dkgray_TV=newTextView(this);
gray_TV=newTextView(this);
green_TV=newTextView(this);
ltgray_TV=newTextView(this);
magenta_TV=newTextView(this);
red_TV=newTextView(this);
transparent_TV=newTextView(this);
white_TV=newTextView(this);
yellow_TV=newTextView(this);
}
/*把TextView添加到LinearLayout布局中*/
publicvoidaddTextView(){
myLayout.addView(black_TV,layoutP);
myLayout.addView(blue_TV,layoutP);
myLayout.addView(cyan_TV,layoutP);
myLayout.addView(dkgray_TV,layoutP);
myLayout.addView(gray_TV,layoutP);
myLayout.addView(green_TV,layoutP);
myLayout.addView(ltgray_TV,layoutP);
myLayout.addView(magenta_TV,layoutP);
myLayout.addView(red_TV,layoutP);
myLayout.addView(transparent_TV,layoutP);
myLayout.addView(white_TV,layoutP);
myLayout.addView(yellow_TV,layoutP);
}
}
执行后的效果如图1-12所示。图1-12执行效果\h实例010:在屏幕中显示编辑框源码路径:daima\007\src\m知识点介绍在手机屏幕中,可以和网页中一样显示可输入文本信息的文本框,此功能是通过编辑框控件EditText实现的。编辑框控件EditText的用法和TextView类似,它能生成一个可编辑的文本框。具体实现在主窗口界面中添加一个EditText控件,然后设定其监听器在接收到单击事件时,程序打开EditText的界面。定义文件editview.xml来布局程序打开的EditText界面,具体代码如下所示。
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
//供用户输入值
<EditTextandroid:id="@+id/edit_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="这里可以输入文字"/>
//用于获取输入值
<Buttonandroid:id="@+id/get_edit_view_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="获取EditView的值"/>
</LinearLayout>
编写事件处理文件EditTextActivity.java,主要代码如下所示。
publicclassEditTextActivityextendsActivity{
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setTitle("EditTextActivity");
setContentView(R.layout.editview);
find_and_modify_text_view();
}
privatevoidfind_and_modify_text_view(){
Buttonget_edit_view_button=(Button)findViewById(R.id.get_edit_view_button);
get_edit_view_button.setOnClickListener(get_edit_view_button_listener);
}
privateButton.OnClickListenerget_edit_view_button_listener=newButton.OnClickListener(){
/**响应代码,显示EditText中的值**/
publicvoidonClick(Viewv){
EditTextedit_text=(EditText)findViewById(R.id.edit_text);
CharSequenceedit_text_value=edit_text.getText();
setTitle("EditText的值:"+edit_text_value);
}
};
}
执行后先显示默认的文本和输入框,如图1-13所示;输入一段文本并单击【获取EditView的值】按钮后会获取输入的文字,并显示出输入的文字,如图1-14所示。图1-13初始效果图1-14执行效果\h实例011:在屏幕中显示复选框源码路径:daima\007\src\m知识点介绍在网页中有复选框这一概念,复选框提供一个制造选择开关的方法,它包括一个小框和一个标签。典型的复选框中有一个小的“X”(或者它设置的其他类型符号)或是空的,这取决于项目是否被选择。在手机屏幕中也可以实现复选框的效果,此功能是通过CheckBox控件实现的。CheckBox控件能够为用户提供输入信息,用户可以一次性选择多个选项。在Android中,使用CheckBox控件也需要在XML布局文件中定义。具体实现编写布局文件check_box.xml,插入拥有4个可选项的CheckBox控件供用户选择,然后插入一个Button控件来响应用户的单击事件,具体代码如下所示。
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<CheckBoxandroid:id="@+id/plain_cb"
android:text="Plain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<CheckBoxandroid:id="@+id/serif_cb"
android:text="Serif"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:typeface="serif"
/>
<CheckBoxandroid:id="@+id/bold_cb"
android:text="Bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
/>
<CheckBoxandroid:id="@+id/italic_cb"
android:text="Italic"
android:layout_width="wrap_c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智慧生活下的家庭健康饮食管理与实践
- 数学教育与心理健康的融合路径探索
- 科技背景下学校图书馆的创新规划研究
- 校园文化建设与德育工作推进
- 探索现代化企业管理模式下的新型保安服务与策略调整
- 2025年度物业人员雇用及客户满意度提升合同
- 二零二五年度城市安全防护系统抵押借款合同
- 二零二五年度股份占比合同协议书:5G通信技术股权投资合作协议
- 2025年度酒店与保险公司合作协议价合同样本
- 2025年度二零二五年度离婚协议及财产分割与子女教育权益合同
- 2025年有机肥行业发展趋势分析报告
- 2023-2024年员工三级安全培训考试题及参考答案(综合题)
- 2025-2030年中国融雪剂行业运行动态及发展前景预测报告
- 对口升学语文模拟试卷(6)-江西省(解析版)
- 2025保安部年度工作计划
- 2024年江苏经贸职业技术学院单招职业适应性测试题库
- 人居环境综合治理项目项目背景及必要性分析
- 招标采购基础知识培训
- 电力系统分布式模型预测控制方法综述与展望
- 2024年注册建筑师-二级注册建筑师考试近5年真题附答案
- 五年级口算题卡每天100题带答案
评论
0/150
提交评论