1、河北xxxxxxxxxx学院 班 级学 号河北XXXXXXXXXXX学院毕业论文题目:基于android平台的音乐播放器姓 名 专 业 指导教师河北XXXXXX学院XXXX系 二0一二年十二月基于android平台的音乐播放器摘要随着中国进入3G时代,整个软件行业也开始从PC时代逐步转移到后PC时代,从互联网时代转移到移动互联网时代.这个时代是一个充满机遇与挑战的时代,三大运营商进入了新一轮的角逐,手机厂商开始了新一轮的战役,在这场战役中以操作系统为主要武器,在这场战役中Android异军突起,用了不到三年的时间将诺基亚塞班拉下马,成为世界上最炙手可热的手机操作系统。目前Android是最热门
2、的操作系统,凭借Linux的软件优势其应用的广泛程度已经让其他对手相形见绌.所以开发基于Android操作平台的应用具有巨大的意义.本文就在分析讨论Android手机软件开发技术原理的基础上,开发出能为用户提供更好的基于Android平台的音乐播放器软件。关键字:3G;android;智能手机平台:音乐播放器 目 录第1章 绪论41。1 项目背景41。2 编写目的及意义41。3 本项目实现的基本目标和研究目的51.4 参考资料5第2章 项目需求分析52。1 系统界面需求52。2 系统结构图和流程图62.3 功能需求72。3。1 播放器的基本控制需求72.3。2 播放清单列表管理需求92。3。3
3、 播放友好性需求102.3。4 功能需求分析112.4 系统性能需求112。5 运行环境需求11第3章 Android数据库设计123。1 数据库表的介绍123。2 数据库的连接13第4章 Android项目介绍164.1 开发语言简介164。2 搭建Android开发环境204。3 Android 音乐播放器的工程21第5章 系统功能详细设计255。1 欢迎界面模块详细设计255。2 主界面模块详细设计275。3 播放列表模块详细设计295.4 歌曲播放模块详细设计325。5 会员登录模块详细设计345。6 会员注册模块详细设计37第6章 系统测试396.1 登陆功能测试396。2 音乐播放
4、功能测试41第7章 总结41致 谢42第1章 绪论1.1 项目背景随着当今社会的生活节奏越来越快,人们对手机的要求和依赖性也变得越来越高,并且由于手机市场发展迅速,使得手机操作系统也出现了不同各类,其中占据最大市场的便是谷歌的Android操作系统,因为其开放源码的优势也使得Android系统拥有无法估量的发展前景,那么问题来了,Android可以让开发者自己编写个性的漂亮的实用的音乐播放器吗?问题的答案是肯定的,本文就将体现如何在基于谷歌的Android平台中创造属于自己的播放器Android:是Google公司推出的专门为移动设备开发的平台,自2007年11月5人推出以来,在短短的几年时间
5、里就超越了称霸10年的诺基亚Symbian系统,成为全球最受欢迎的智能手机平台.Android应用不仅可以开发在手机或者平台中运行的软件,同时在电视已经很多设备上都有它的一席之地,本次音乐音乐播放器就是基于Android平台的.随着计算机的不断发展与广泛运用,以及手机市场的迅速发展,各种各样的音频资资源也开始在网络上广为流传,这些看似平常的资源,却已经慢慢的渐渐的成为了大众生活中必不可少的一部分。这也造成了各种手机播放器层出不穷的出现,但是很多的播放器都是以为的追求着外观的花销,功能的庞大,以及经济的效益,使得播放器对用户的手机造成了很多资源的浪费,比如CPU,内容占用率过高,高耗电量等.也使
6、得操作起来过于繁杂,使用户在使用在有不小的影响,带来了很多的不便,而对于大多数的使用者来说,很多的功能都是用不上的,形同虚设。1。2 编写目的及意义鉴于当前的背景,以及以上各种弊端,在功能上选择了更为人性化的音乐播放器,同时对于各种性能的优化上也做出了一定的调整,也继承了播放器的常用功能,满足大部分使用者的需求。在了解了市场上各种主流的手机播放器之后,更加清楚如何去开发一款手机播放器,懂得开发所欲要的插件以及编码方式,也分析了各种编码的优点和缺点以及播放器自己所拥有的缺陷和特点,实现一款使用更方便,功能更使用的手机播放器.在目前为止,改播放器已实现了能播放常见格式音频文件的功能,如MP3,WA
7、V。AVI,RM,RMVB等,同时也拥有属于自己的播放界面,具备平常播放器拥有的功能,如音量调节,上一首,下一首等.播放模式也拥有单曲,列表顺序,列表循环,随机播放等。1.3 本项目实现的基本目标和研究目的本论文要实现的基本需求和主要功能有以下几点:(1) 开场动画。(2) 音乐播放器的基本功能有:播放,暂停,停止,上一首,下一首,音量调节,定点播放等等功能)。(3) 本地音乐的获取,扫描手机SD卡中的音乐,在列表中显示播放时间在30秒以上的音频文件.(4) 底部菜单我的音乐(主界面),随便听听(联网),搜歌(联网),功能菜单。(5) 会员登陆/注册(登陆成功后进入的云端好音乐,随时听好听的音
8、乐)。(6) 歌曲的播放模式及各种设置1。4 参考资料android初级教程android中级教程android高级教程基于JSP的Web应用开发以上文献,全部来自安博教育集团组编.第2章 项目需求分析2。1 系统界面需求音乐播放器界面具有合理的布局,界面颜色整洁,控制按钮便利,要求播放器有一个主要的实用标准,以及统一的主题思想。例如登陆界面:2。2 系统结构图和流程图(1)音乐播放器的系统流程图(图2。2。1)图2.2.1(2) 系统功能表(表2.2。2。1)功能类别子功能子功能播放列表播放列表菜单退出播放从扩展卡寻找歌曲歌曲菜单播放-进入播放界面删除-数据库同步更新重命名-数据库同步更新向
9、上、下移动数据库同步更新播放界面播放播放歌曲-线程启动-时间更新暂停暂停歌曲线程暂停-时间暂停停止停止歌曲线程停止时间停止上一首播放列表索引变化寻找上一ID歌曲下一首播放列表索引变化寻找下一ID歌曲播放界面菜单返回到播放列表返回到主菜单从扩展卡寻找歌曲退出播放器隐藏播放界面主菜单退出程序程序退出进入播放列表显示播放列表表2。2.2。12.3 功能需求2。3。1 播放器的基本控制需求如图:图2。3。1播放器基本功能图用例名称:播放参与者:用户目标:使得程序播放选中的歌曲前置条件:程序运行在播放菜单选项中基本事件流:1.用户单击“播放”按钮 2.播放器进入播放状态用例名称:暂停参与者:用户目标:使
10、得用户可以暂停正在播放的歌曲前置条件:歌曲正在播放且未停止和暂停基本事件流:1。用户单击“暂停”按钮 2.播放器将暂停当前的歌曲用例名称:停止参与者:用户目标:使得用户可以停止正在播放的歌曲前置条件:歌曲正在播放或暂停基本事件流:1.用户单击“停止”按钮 2.播放器将停止当前播放的歌曲用例名称:上一首/下一首参与者:用户目标:使得用户可以听上一首或下一首歌曲前置条件:歌曲正在播放或暂停基本事件流:1.用户单击“上一首或下一首”按钮 2.播放器将播放上一首或下一首歌曲2。3。2 播放清单列表管理需求图2.3。2 播放器基本功能图用例名称:播放参与者:用户目标:使得程序播放选中的歌曲前置条件:程序
11、运行在播放菜单选项中基本事件流:1。用户单击“播放”按钮 2。播放器进入播放状态用例名称:返回参与者:用户目标:使得程序返回上一层前置条件:程序运行在播放菜单选项中基本事件流:1.用户单击“返回按钮 2。返回到主界面用例名称:删除参与者:用户目标:使选中的歌曲删除前置条件:程序运行在播放菜单选项中基本事件流:1.用户单击“删除”按钮 2.播放器删除选中歌曲/全部移除歌曲2。3.3 播放友好性需求用例名称:播放模式参与者:用户目标:使得程序进入播放模式设定状态前置条件:程序运行在播放器设定界面中基本事件流:1。用户单击“顺序、随机、单曲按钮 2.播放器进入选中模式播放状态用例名称:歌词显示参与者
12、:用户目标:使得程序进入播放器歌词设置状态前置条件:程序运行在播设定界面基本事件流:1。用户单击“歌词开关按钮”按钮 2.播放器显示或关闭歌词2.3。4 功能需求分析播放器拥有的功能需求使得开发者开发出应有的软件功能,使得用户能在软件上能实现他们需要的业务需求。在用户需求文档中,描述了用户如何使用该产品必须要完成的任务.2.4 系统性能需求根据Android系统要求软件无响应时间为5秒,所以本软件就有以下几点性能要求:(1) 当要求歌曲播放时,程序响应时间最长不能超过5秒(2) 当要求歌曲暂停时,程序响应时间最长不能超过5秒(3) 当要求歌曲停止时,程序响应时间最长不能超过5秒(4) 当要求歌
13、曲上/下一首时,程序响应时间最长不能超过5秒2.5 运行环境需求操作系统:Android手机基于Linux操作系统支持环境:Android 1。5 4。0。3版本开发环境:MyEclipse 8.5 ADT 0.95 MySQL Tocat 6。0第3章 Android数据库设计开发应用程序时,对于数据库的操作是必不可少的,数据库的设计是根据程序的需求以及实现功能所制定的,一个合理的高效的数据库将会直接影响到程序的开发过程,以及程序的使用。在涉及数据库的软件开发中,需要根据有待解决的问题性质、规模,以及所采用的前端程序创建工具等,做出合适的数据库类型选择.3.1 数据库表的介绍本次数据库系统采
14、用了MySQL数据库系统,在该系统中新建一个数据库,将其命名为mediaplayer。sql。然后,在该系统中创2个数据库表,分别为会员信息表(table_user) 、云播放列表(table_cloudlist)。下面对主要的数据库表做简要的介绍:表3。1音乐播放器表清单 表名称 表用途table_user会员信息表table_cloudlist云播放列表3.1。1 用户注册表会员信息表包含了用户的ID、用户名、密码、邮箱。表3.1.1会员信息表列名数据类型长度字段描述UserIDint11用户ID,主键,自动增长UserNamevarchar50用户名Passwordvarchar20用户
15、密码Emailvarchar50用户邮箱3。1.2 云播放列表云播放列表包含了列表的ID、歌名、歌手名字。表3。1.1会员信息表列名数据类型长度字段描述ListIDint11L列表ID,主键,自动增长MusicNamevarchar50歌名SingerNamevarchar20歌手名字3。2 数据库的连接本次项目需要用户手机安装的客户端和服务器端的连接,进行数据的交互,查询,添加等活动。所以服务器端要先与数据进行连接,进行必要数据交互,就是所谓的后台服务。服务器端连接数据库,需要JDBC的支持。JDBC的全称是Jave DataBase Connectivity(Java数据库连接,严格的讲,
16、JDBC是Sun Microsystems注册的商标而非缩写)。JDBC是SUN公司定义的Java操作数据库的规范(一系列接口).通过JDBC可以操作任何的关系数据库(前提是具备数据库JDBC驱动程序).3。2.1 JDBC工作原理JDBC定义了一座操作数据库的接口,不同的数据库厂商提供了不同JDBC接口的实现,这个实现称为JDBC驱动.这样就可以通过JDBC接口来对不同的数据库获得统一的操作。JDBC工作原理如图:最顶层是我们编写的Java的应用程序,Java应用程序通过JDBC API来连接和操作数据库,JDBC API定义了访问数据库的接口和类,其中一些接口由不同的数据库厂商来实现。这些
17、不同的数据库厂商提供的JDBC驱动程序需要由JDBC Manager来管理,JDBC Driver Manager 管理的这些不同数据库厂商的JDBC驱动程序,负责连接各种不同的数据库.3.2。2 JDBC API简单地说,JDBC API可做的三件事:与数据库建立连接,发送需要执行的SQL语句,获取处理结果。如图所示:3.2。3 JDBC 程序访问数据库JDBC访问数据库的过程我们可以分解为1个准备和8个步骤(天龙八部),如图所示: 1个准备:从官网上下载MySQL数据库JDBC驱动的jar包:mysqlconnectorjava3.1。11bin.jar文件,将jar包放到Web应用放在W
18、EBINF/lib目录中 8个步骤(天龙八部):(1) 第一步:加载并注册连接数据库的驱动程序类 举个例子:Class。forName(com。mysql。jdbc.Driver);(2) 第二步:创建与数据库的连接 举个例子:String URL=”jdbc:mysql:/localhost:3306/mediaplayer”;Connection con=DriverManager。getConnection(URL,数据库名,密码);(3) 第三,四步:查询数据库举个例子:String str =”select from table_cloudlist”; pstmt = conn。pr
19、epareStatement(str);(4) 第五步:处理结果 举个例子:rs = pstmt。executeQuery();while(rs。next()CloudList clist = new CloudList();clist。setListID(rs.getInt(1));clist。setMusicName(rs。getString(2));clist.setSingerName(rs.getString(3));clists.add(clist);(5) 第六、七、八步:关闭结果集、查询语句及数据库的连接(注意关闭的顺序先ResultSet再PreparedStatement最
20、后为Connection)举个例子:finallyDBC。close(rs);DBC。close(pstmt);DBC。close(conn);第4章 Android项目介绍4。1 开发语言简介4。1.1 Android简介Android(安卓),是一个以Linux为基础的开源移动设备操作系统,主要用于智能手机和平板电脑,由Google成立的Open Handset Alliance(OHA,开放手持设备联盟)持续领导与开发中。Android已发布的最新版本为Android 6。0.1(M)。Android系统最初由安迪鲁宾(Andy Rubin)等人开发制作1 ,最初开发这个系统的目的是创建
21、一个数码相机的先进操作系统;但是后来发现市场需求不够大,加上智能手机市场快速成长,于是Android被改造为一款面 向智能手机的操作系统。於2005年8月被美国科技企业Google收购。2007年11月,Google与84家制造商、开发商及电信营运商成立开放手持设备联盟来共同研发改良Android系统,随後,Google以Apache免费开放原始码许可证的授权方式,发布了Android的原码,让生产商推出搭载Android的智能手机,Android後来更逐渐拓展到平板电脑及其他领域上。4.1。2 Android Features特性Android系统的特性:v 应用程序框架 支持组件的重用与替
22、换v Dalvik虚拟机 专门为移动设备做了优化v 内部集成浏览器 该浏览器基于开源的WebKit引擎v 优化的图形库 包括2D和3D图形库,3D图形库基于OpenGL ESv SQLite 用作结构化的数据存储v 多媒体支持 包括常见的音频、视频和静态印象文件格式(如 MPEG4、H.264、MP3、AAC、 AMR、JPG、PNG、 GIF)v GSM电话(依赖于硬件)v 蓝牙Bluetooth,EDGE,3G and WiFi (依赖于硬件)v 照相机,GPS,指南针,和加速度计 (依赖于硬件)4。1。3 Android基本框架(Android Architecture)(1)Appli
23、cationsApplication Android提供的一组应用程序,包含了email客户端,SMS程序,日历,地图,浏览器,通讯录等。这部分的应用程序都是使用JAVA语言编写的。(2)Application FrameWork不管是Android系统提供的应用程序还是开发人员自己编写的开发程序,都要用到Application FrameWork(应用程序框架)来大幅度的简化代码的编写以及提高程序的复用性。(3)Libraries库Android系统提供的一组C/C+库,为Android平台中不同的组件所使用,开发人员通过Application FrameWork便可以使用到这些库所提供的不
24、同的功能。 (4)Android Runtime(Android运行时)Android系统运行时包括核心库以及Dalvik虚拟机两大部分。其中核心库提供了Java语言核心库中包含的大部分功能,虚拟机则负责运行程序。Daivik虚拟机专门用来针对手机登移动设备来进行编写,好处在于不仅效率高,而且占用内存少。 (5)Linux内核Android平台使用了Linux2。6版的内核所提供的核心系统服务,包括了安全性,内存管理,进程管理等。4。1。4 Android系统的四大组件在Android系统中,为我们提供了四大基本组件,下面分别介绍四大组件:(1)Activity 简介Activity是最基本的
25、模块,我们称之为“活动”,在应用程序中,一个Activity通常就是一个单独的屏幕。每一个活动都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口,并对事件作出响应。 (2)Service 简介Service就是一种运行在后台的服务程序,没有可视化界面定义,Service类比较简单,只要继承Service类,实现其生命周期中的方法就可以了.Service有自己的生命周期,我们可以调用startService()启动一个Service或者bindService()方法来绑定一个存在的Service (3)Broadcast Receiver 简介Broadca
26、st Receiver 顾名思义广播接收器,它的处理机制是系统级别的。到目前为止我们可以使用Intent来启动一个程序组件,我们还可以通过使用sendBroadcast()方法来发起一个系统级别的事件广播来传递消息.我们可以在你的应用程序中实现Broadcast Receiver来监听和响应这些广播的Intent . (4)ContentProvider简介Content Provider 是用于开发者保存和检索数据的,并且使应用程序之间相互访问数据成为可能。它是跨应用程序共享数据的唯一方法. Android 为常用的数据类型(如:音视频、图片和联系方式等)提供了大量的Content Prov
27、ider。它们被定义在android.provider包下面。当然我们必须拥有适当的权限. 4.2 搭建Android开发环境任何事物要运行,都要有它的环境,Android也有它的环境才能够运行,下面介绍Android开发环境的配置. 搭建开发环境需要的软件:操作系统:window XP或linux软件包:Android SDK(Software Development kit Java Development kit) 、ADT(Android Develoopment Tool)IDE环境:Eclipse IDE+ADT Eclipse3。3以上JDK:Java Runtime Envir
28、onment虚拟机 、(JDK)Java Development kit安装步骤如下:第一步:安装Java虚拟机sun-java6jdk版本。第二步:安装Eclipse3.5工具,到官网http:/www。eclipse.org/downloads/,选择版本下载后进行安装。第三步:安装Android SDK:首先要下载SDK,可以在这个网址下载Http:/developer.Android。com/sdk ,选择相应的系统进行安装.第四步:安装Android ADT插件.运行Eclipse,选择help-install new software 选择add,将会弹出一个【Add Site】对
29、话框.点击OK,选择要安装的软件,占next,然后选择接受协议,直到安装成功,重启Eclipse软件,设置Android SDK Home,Windowrefrence。设置Android SDK Home界面在SDK location中输入SDK Tools路D:AndroidsoftwareAndroid-sdk-windows 点击OK,这样Android环境就已经搭建成功了.4。3 Android 音乐播放器的工程4.3。1 Android项目Android的四大基本组件:Activity(活动),Service(服务),BroadcastReceiver(广播),ContentPro
30、vider(内容提供者),通过启动StartIntent()方法来使各组件进行跳转Android的五大布局方式:LinearLayout(线性布局) FrameLayout(帧布局) TableLayout(表格布局) AbsoluteLayout(绝对布局) RelativeLayout(相对布局)五种布局方式可以相互嵌套,Android各种漂亮的界面都是通过嵌套布局而实现的。Android的线程,以及线程之间通信的中介:Handler类Android配置文件:AndroidManifest。Xml及res资源文件中各种属性布局方式引用的资源等。图 4。3。1 android模拟器4。3。2
31、 Android工程程序结构Android工程基本结构目录包括:src (源代码)、gen(Android系统自动生成的常量)、Res(资源文件):主要存放程序界面的布局配置(。xml)文件和图片资源。AndroidMainfes。xml 是四大组件的驱动配置文件,有它的存在,Android程序的四大组件才可以正常的跳转。Android资源的类型和布局图4。3.2资源类型和布局图下图4-31 到图434为音乐播放器代码结构和各界面的配置文件,图像资源等,图4-31 为一个Android工程所必须的结构,图432为该播放器的.Java文件,图43-3为 该播放器的各种界面的布局配置文件,图4-3
32、-4为该播放器的图片资源。图43-1音乐播放器代码结构和各界面的配置文件图43-2 图433 图4-344。3.3 AndroidManifest。xml文件Android系统的任何一个程序启动都需要AndroidManifest.xml来启动程序,任何一个新建的工程目录都会自动生成一个AndroidManifest。xml文件,此配置文件是整个程序能够正常运行的核心,它里面包含了Android SDK的版本,程序运行的默认Activity,当程序中的任何一个组件触发事件后,系统都会自动的去AndroidManifest。xml中寻找标识来作出相应的操作.任何一个AndroidManifest
33、。Xml文件的格式都应为: ?xml version=1.0 encoding=utf8?manifest application activity intentfilteraction/intentfilter Android系统有一个编码的规定,支持的编码是utf8,当程序中出现乱码是,我们须将其编码格式转化为utf8。在 AndroidManifest。xml中会在第一行声明一句:?xml version=”1.0” encoding=utf-8”?。它是该系统支持的版本和编码。在第二行定义了我们需要使用的架构,该架构来自xmlns:android=”http:/xmlns(XML na
34、mespace)是一个命名空间,它就像一条河的源头一样能让我们找到系统架构,每一个配置文件必须有这个xmlns,否则程序中的所使用的所有资源将无法找到。在application元素我们定义android:icon=drawable/icon”android:label=”string/app_name”,android:icon是程序在手机中显示的图片,我们运用drawable/icon表示了对res/drawable目录下的icon。png的引用。string/app_name表示了对res/value目录下string。Xml中定义的app_name参数的引用.这是系统确定的首先要启动的A
35、ctivity是WelcomingActivity。在intent-filter选项中,有action和category等等属性,我们需要定义action的值为Android.intent。action.MAIN,category的值为Android.intent.category。LAUNCHER,它们是系统的值,程序在解析到这些常用后就可以确定首先要启动的Activity。当我们需要通过一个组件触发另一个组件时,我们将设定action和category的其它属性值,系统会根据我们设定的属性值去AndroidManifest.Xml的application 中寻找标识,任何一个Activit
36、y的action和category是唯一,所以程序在任何时候都能唯一启动一个Activity,这样,不同的Activity之间的跳转就实现了.在AndroidManifest。Xml中有一个根结点uses-sdk,它是我们需要定义的ADT版本,例如我们将其值设定为Android:minSdkVersion=10,则表示此Android工程所用的版本为2。3,Android还有1。1、1。5、1。6、2。0、2.1、2。2、2.3、3.0、4.0这几个版本。如果我们需要对网络进行访问,比如打开一个网页,刚我还需要设置一个网络访问权限usespermission,将其的值设置为Android:na
37、me=”Android。permission.INTERNET,我们就可以访问网络了。当然usespermission还有很多其它的权限,例如GPS定位权限,浏览器数据存取权限com。Android。browser.permission。READ_HISTORY_BOOKMARKS等等。当程序的任何一个组件要用到时,都必须在AndroidManifest。Xml文件中声明。四大组件要使用前都需要声明,其声明方式如下:/service/activityreceiver/receiver其中声明provider时还需要声明其授权 authorities。每个组件里面还有很多的属性,会根据程序的具体
38、需要定义不同的属性.过滤器intentfilter 有两种启动方式来启动界面:(1) 显示方式显示方式是在代码中的直接启动组件,启动时会声明Intent,在它的构造方法Intent(组件1,组件2)中直接指定一个组件的名字,然后调用方法startIntent(intent)以启动指定的组件。(2) 隐式方式隐式方式是通过过滤器来过滤完成的,启动的组件必须满足action和category的条件才能够启动该组件。这些属性是在AndroidManifest。Xml文件中声明的。两种启动方式都可以通过程序setAction(ACTION常量)和startActivity(intent)或配置文件两种
39、方式来实现组件的跳转。第5章 系统功能详细设计5.1 欢迎界面模块详细设计在欢迎界面模块的设计中,应用了LinearLayout布局和Animation效果。开机使用动画效果,5张图片自动变换。欢迎界面模块运行结果如图中部分图片.图51 欢迎界面(1)页面设计整体为LinearLayout布局,其中包含两个ImageView控件,设置两个图片为垂直布局。本LinearLayout布局的id值是 llSplash,背景颜色为“#ffffffff 。(2)代码编写欢迎界面模块主要是用于增强用户体验,让用户较容易接受本软件.在编写代码前,首先要定义一个Animation类对象,以便编写代码时调用该类
40、中方法,主要代码如下:ha=new Handler();ru=new Runnable() public void run() Intent intent=new Intent();/ 启动线程由欢迎界面跳往首页intent.setClass(WelcomingActivity。this, MainActivity2。class);startActivity(intent);WelcomingActivity.this。finish();overridePendingTransition(R。anim。in,R。anim。out ); delay.schedule(task, 10003 );
41、 ha。postDelayed(ru, 3000);/延时跳转 FinalIntent dIntent=newIntent(this,MainActivity2.class); Timer delay = new Timer(); TimerTask task = new TimerTask() Override public void run() startActivity(dIntent); ;5。2 主界面模块详细设计当欢迎界面过后,自动跳转到主界面.主界面模块运行结果如图5-2所示。图52 主界面(1)页面设计当进入主界面,采用相对布局。删除标题,采用自定义布局。相应代码如下: req
42、uestWindowFeature(Window。FEATURE_NO_TITLE);/去掉标题栏线性布局,文字和图片。如下代码: LinearLayout android:layout_alignParentTop=”true” android:layout_width=”match_parent android:layout_height=”wrap_content” android:orientation=”vertical android:id=+id/li1 android:background=#4000 TextView android:layout_width=wrap_con
43、tent android:layout_height=wrap_content android:text=悦音 android:textSize=”25dip” android:textColor=#8455BD” android:layout_gravity=”center / /LinearLayout登陆模块和播放模块采用网格布局.代码如下:int gridViewPic02=R.drawable。menu006,R。drawable。menu002;String gridViewText02=登录模块,”播放模块;gridView02=(GridView) findViewById(R。id。gridview2); gridView02。setNumColumns(3);/功能菜单每行显示3 gridView02.setHorizontalSpacing(20);/水平间距20 gridView02.setVerticalSpacing(20);/垂直间距20 gridView02。setOnItemClickListener(new OnItemClickListener() Overr