




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
班 级 学 号 河北XXXXXXXXXXX学院毕业论文 题目:基于android平台的音乐播放器姓 名 专 业 指导教师 河北XXXXXX学院XXXX系 二0一二年十二月基于android平台的音乐播放器摘要随着中国进入3G时代,整个软件行业也开始从PC时代逐步转移到后PC时代,从互联网时代转移到移动互联网时代。这个时代是一个充满机遇与挑战的时代,三大运营商进入了新一轮的角逐,手机厂商开始了新一轮的战役,在这场战役中以操作系统为主要武器,在这场战役中Android异军突起,用了不到三年的时间将诺基亚塞班拉下马,成为世界上最炙手可热的手机操作系统。目前Android是最热门的操作系统,凭借Linux的软件优势其应用的广泛程度已经让其他对手相形见绌。所以开发基于Android操作平台的应用具有巨大的意义。本文就在分析讨论Android手机软件开发技术原理的基础上,开发出能为用户提供更好的基于Android平台的音乐播放器软件。关键字:3G;android;智能手机平台:音乐播放器 目 录第1章 绪论41.1 项目背景41.2 编写目的及意义41.3 本项目实现的基本目标和研究目的51.4 参考资料5第2章 项目需求分析52.1 系统界面需求52.2 系统结构图和流程图62.3 功能需求7 2.3.1 播放器的基本控制需求7 2.3.2 播放清单列表管理需求9 2.3.3 播放友好性需求10 2.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 音乐播放功能测试41第7章 总结41致 谢42第1章 绪论1.1 项目背景随着当今社会的生活节奏越来越快,人们对手机的要求和依赖性也变得越来越高,并且由于手机市场发展迅速,使得手机操作系统也出现了不同各类,其中占据最大市场的便是谷歌的Android操作系统,因为其开放源码的优势也使得Android系统拥有无法估量的发展前景,那么问题来了,Android可以让开发者自己编写个性的漂亮的实用的音乐播放器吗?问题的答案是肯定的,本文就将体现如何在基于谷歌的Android平台中创造属于自己的播放器Android:是Google公司推出的专门为移动设备开发的平台,自2007年11月5人推出以来,在短短的几年时间里就超越了称霸10年的诺基亚Symbian系统,成为全球最受欢迎的智能手机平台。Android应用不仅可以开发在手机或者平台中运行的软件,同时在电视已经很多设备上都有它的一席之地,本次音乐音乐播放器就是基于Android平台的。随着计算机的不断发展与广泛运用,以及手机市场的迅速发展,各种各样的音频资资源也开始在网络上广为流传,这些看似平常的资源,却已经慢慢的渐渐的成为了大众生活中必不可少的一部分。这也造成了各种手机播放器层出不穷的出现,但是很多的播放器都是以为的追求着外观的花销,功能的庞大,以及经济的效益,使得播放器对用户的手机造成了很多资源的浪费,比如CPU,内容占用率过高,高耗电量等。也使得操作起来过于繁杂,使用户在使用在有不小的影响,带来了很多的不便,而对于大多数的使用者来说,很多的功能都是用不上的,形同虚设。1.2 编写目的及意义鉴于当前的背景,以及以上各种弊端,在功能上选择了更为人性化的音乐播放器,同时对于各种性能的优化上也做出了一定的调整,也继承了播放器的常用功能,满足大部分使用者的需求。在了解了市场上各种主流的手机播放器之后,更加清楚如何去开发一款手机播放器,懂得开发所欲要的插件以及编码方式,也分析了各种编码的优点和缺点以及播放器自己所拥有的缺陷和特点,实现一款使用更方便,功能更使用的手机播放器。在目前为止,改播放器已实现了能播放常见格式音频文件的功能,如MP3,WAV.AVI,RM,RMVB等,同时也拥有属于自己的播放界面,具备平常播放器拥有的功能,如音量调节,上一首,下一首等。播放模式也拥有单曲,列表顺序,列表循环,随机播放等。1.3 本项目实现的基本目标和研究目的本论文要实现的基本需求和主要功能有以下几点:(1) 开场动画。(2) 音乐播放器的基本功能有:播放,暂停,停止,上一首,下一首,音量调节,定点播放等等功能)。(3) 本地音乐的获取,扫描手机SD卡中的音乐,在列表中显示播放时间在30秒以上的音频文件。(4) 底部菜单我的音乐(主界面),随便听听(联网),搜歌(联网),功能菜单。(5) 会员登陆/注册(登陆成功后进入的云端好音乐,随时听好听的音乐)。(6) 歌曲的播放模式及各种设置1.4 参考资料android初级教程 android中级教程 android高级教程 基于JSP的Web应用开发 以上文献,全部来自安博教育集团组编。第2章 项目需求分析2.1 系统界面需求音乐播放器界面具有合理的布局,界面颜色整洁,控制按钮便利,要求播放器有一个主要的实用标准,以及统一的主题思想。例如登陆界面: 2.2 系统结构图和流程图(1)音乐播放器的系统流程图(图2.2.1)图2.2.1(2) 系统功能表(表)功能类别子功能子功能播放列表播放列表菜单退出播放从扩展卡寻找歌曲歌曲菜单播放-进入播放界面删除-数据库同步更新重命名-数据库同步更新向上、下移动-数据库同步更新播放界面播放播放歌曲-线程启动-时间更新暂停暂停歌曲-线程暂停-时间暂停停止停止歌曲-线程停止-时间停止上一首播放列表索引变化-寻找上一ID歌曲下一首播放列表索引变化-寻找下一ID歌曲播放界面菜单返回到播放列表返回到主菜单从扩展卡寻找歌曲退出播放器隐藏播放界面主菜单退出程序程序退出进入播放列表显示播放列表表2.3 功能需求2.3.1 播放器的基本控制需求如图: 图2.3.1播放器基本功能图用例名称:播放参与者:用户目标:使得程序播放选中的歌曲前置条件:程序运行在播放菜单选项中基本事件流:1.用户单击“播放”按钮 2.播放器进入播放状态用例名称:暂停参与者:用户目标:使得用户可以暂停正在播放的歌曲前置条件:歌曲正在播放且未停止和暂停基本事件流:1.用户单击“暂停”按钮 2.播放器将暂停当前的歌曲用例名称:停止参与者:用户目标:使得用户可以停止正在播放的歌曲前置条件:歌曲正在播放或暂停基本事件流:1.用户单击“停止”按钮 2.播放器将停止当前播放的歌曲用例名称:上一首/下一首参与者:用户目标:使得用户可以听上一首或下一首歌曲前置条件:歌曲正在播放或暂停基本事件流:1.用户单击“上一首或下一首”按钮 2.播放器将播放上一首或下一首歌曲2.3.2 播放清单列表管理需求 图2.3.2 播放器基本功能图用例名称:播放参与者:用户目标:使得程序播放选中的歌曲前置条件:程序运行在播放菜单选项中基本事件流:1.用户单击“播放”按钮 2.播放器进入播放状态用例名称:返回参与者:用户目标:使得程序返回上一层前置条件:程序运行在播放菜单选项中基本事件流:1.用户单击“返回”按钮 2.返回到主界面用例名称:删除参与者:用户目标:使选中的歌曲删除前置条件:程序运行在播放菜单选项中基本事件流:1.用户单击“删除”按钮 2.播放器删除选中歌曲/全部移除歌曲2.3.3 播放友好性需求用例名称:播放模式参与者:用户目标:使得程序进入播放模式设定状态前置条件:程序运行在播放器设定界面中基本事件流:1.用户单击“顺序、随机、单曲”按钮 2.播放器进入选中模式播放状态用例名称:歌词显示参与者:用户目标:使得程序进入播放器歌词设置状态前置条件:程序运行在播设定界面基本事件流:1.用户单击“歌词开关按钮”按钮 2.播放器显示或关闭歌词2.3.4 功能需求分析播放器拥有的功能需求使得开发者开发出应有的软件功能,使得用户能在软件上能实现他们需要的业务需求。在用户需求文档中,描述了用户如何使用该产品必须要完成的任务。2.4 系统性能需求根据Android系统要求软件无响应时间为5秒,所以本软件就有以下几点性能要求:(1) 当要求歌曲播放时,程序响应时间最长不能超过5秒(2) 当要求歌曲暂停时,程序响应时间最长不能超过5秒(3) 当要求歌曲停止时,程序响应时间最长不能超过5秒(4) 当要求歌曲上/下一首时,程序响应时间最长不能超过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 数据库表的介绍本次数据库系统采用了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用户密码Emailvarchar50用户邮箱3.1.2 云播放列表云播放列表包含了列表的ID、歌名、歌手名字。表3.1.1会员信息表列名数据类型长度字段描述ListIDint11L列表ID,主键,自动增长MusicNamevarchar50歌名SingerNamevarchar20歌手名字3.2 数据库的连接本次项目需要用户手机安装的客户端和服务器端的连接,进行数据的交互,查询,添加等活动。所以服务器端要先与数据进行连接,进行必要数据交互,就是所谓的后台服务。服务器端连接数据库,需要JDBC的支持。JDBC的全称是Jave DataBase Connectivity(Java数据库连接,严格的讲,JDBC是Sun Microsystems注册的商标而非缩写)。JDBC是SUN公司定义的Java操作数据库的规范(一系列接口)。通过JDBC可以操作任何的关系数据库(前提是具备数据库JDBC驱动程序)。3.2.1 JDBC工作原理JDBC定义了一座操作数据库的接口,不同的数据库厂商提供了不同JDBC接口的实现,这个实现称为JDBC驱动。这样就可以通过JDBC接口来对不同的数据库获得统一的操作。JDBC工作原理如图:最顶层是我们编写的Java的应用程序,Java应用程序通过JDBC API来连接和操作数据库,JDBC API定义了访问数据库的接口和类,其中一些接口由不同的数据库厂商来实现。这些不同的数据库厂商提供的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包:mysql-connector-java-3.1.11-bin.jar文件,将jar包放到Web应用放在WEB-INF/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.prepareStatement(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最后为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 ,最初开发这个系统的目的是创建一个数码相机的先进操作系统;但是后来发现市场需求不够大,加上智能手机市场快速成长,于是Android被改造为一款面 向智能手机的操作系统。於2005年8月被美国科技企业Google收购。2007年11月,Google与84家制造商、开发商及电信营运商成立开放手持设备联盟来共同研发改良Android系统,随後,Google以Apache免费开放原始码许可证的授权方式,发布了Android的原码,让生产商推出搭载Android的智能手机,Android後来更逐渐拓展到平板电脑及其他领域上。4.1.2 Android Features特性Android系统的特性:v 应用程序框架 支持组件的重用与替换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)ApplicationsApplication Android提供的一组应用程序,包含了email客户端,SMS程序,日历,地图,浏览器,通讯录等。这部分的应用程序都是使用JAVA语言编写的。(2)Application FrameWork不管是Android系统提供的应用程序还是开发人员自己编写的开发程序,都要用到Application FrameWork(应用程序框架)来大幅度的简化代码的编写以及提高程序的复用性。(3)Libraries库Android系统提供的一组C/C+库,为Android平台中不同的组件所使用,开发人员通过Application FrameWork便可以使用到这些库所提供的不同的功能。 (4)Android Runtime(Android运行时)Android系统运行时包括核心库以及Dalvik虚拟机两大部分。其中核心库提供了Java语言核心库中包含的大部分功能,虚拟机则负责运行程序。Daivik虚拟机专门用来针对手机登移动设备来进行编写,好处在于不仅效率高,而且占用内存少。 (5)Linux内核Android平台使用了Linux2.6版的内核所提供的核心系统服务,包括了安全性,内存管理,进程管理等。4.1.4 Android系统的四大组件在Android系统中,为我们提供了四大基本组件,下面分别介绍四大组件:(1)Activity 简介Activity是最基本的模块,我们称之为“活动”,在应用程序中,一个Activity通常就是一个单独的屏幕。每一个活动都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口,并对事件作出响应。 (2)Service 简介 Service就是一种运行在后台的服务程序,没有可视化界面定义,Service类比较简单,只要继承Service类,实现其生命周期中的方法就可以了.Service有自己的生命周期,我们可以调用startService()启动一个Service或者bindService()方法来绑定一个存在的Service (3)Broadcast Receiver 简介 Broadcast Receiver 顾名思义广播接收器,它的处理机制是系统级别的。到目前为止我们可以使用Intent来启动一个程序组件,我们还可以通过使用sendBroadcast()方法来发起一个系统级别的事件广播来传递消息。我们可以在你的应用程序中实现Broadcast Receiver来监听和响应这些广播的Intent 。 (4)ContentProvider简介 Content Provider 是用于开发者保存和检索数据的,并且使应用程序之间相互访问数据成为可能。它是跨应用程序共享数据的唯一方法。 Android 为常用的数据类型(如:音视频、图片和联系方式等)提供了大量的Content Provider。它们被定义在vider包下面。当然我们必须拥有适当的权限。 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 Environment虚拟机 、(JDK)Java Development kit安装步骤如下:第一步:安装Java虚拟机sun-java6-jdk版本。第二步:安装Eclipse3.5工具,到官网/downloads/,选择版本下载后进行安装。第三步:安装Android SDK:首先要下载SDK,可以在这个网址下载Http:/developer.A/sdk ,选择相应的系统进行安装。第四步:安装Android ADT插件。运行Eclipse,选择help-install new software 选择add,将会弹出一个【Add Site】对话框。点击OK,选择要安装的软件,占next,然后选择接受协议,直到安装成功,重启Eclipse软件,设置Android SDK Home,Window-refrence。设置Android SDK Home界面在SDK location中输入SDK Tools路D:AndroidsoftwareAndroid-sdk-windows 点击OK,这样Android环境就已经搭建成功了。4.3 Android 音乐播放器的工程4.3.1 Android项目Android的四大基本组件:Activity(活动),Service(服务),BroadcastReceiver(广播),ContentProvider(内容提供者),通过启动StartIntent()方法来使各组件进行跳转Android的五大布局方式:LinearLayout(线性布局) FrameLayout(帧布局) TableLayout(表格布局) AbsoluteLayout(绝对布局) RelativeLayout(相对布局)五种布局方式可以相互嵌套,Android各种漂亮的界面都是通过嵌套布局而实现的。Android的线程,以及线程之间通信的中介:Handler类Android配置文件:AndroidManifest.Xml及res资源文件中各种属性布局方式引用的资源等。图 4.3.1 android模拟器4.3.2 Android工程程序结构Android工程基本结构目录包括:src (源代码)、gen(Android系统自动生成的常量)、Res(资源文件):主要存放程序界面的布局配置(.xml)文件和图片资源。AndroidMainfes.xml 是四大组件的驱动配置文件,有它的存在,Android程序的四大组件才可以正常的跳转。Android资源的类型和布局 图4.3.2资源类型和布局图下图4-3-1 到图4-3-4为音乐播放器代码结构和各界面的配置文件,图像资源等,图4-3-1 为一个Android工程所必须的结构,图4-3-2为该播放器的.Java文件,图4-3-3为 该播放器的各种界面的布局配置文件,图4-3-4为该播放器的图片资源。图4-3-1音乐播放器代码结构和各界面的配置文件 图4-3-2 图4-3-3 图4-3-44.3.3 AndroidManifest.xml文件Android系统的任何一个程序启动都需要AndroidManifest.xml来启动程序,任何一个新建的工程目录都会自动生成一个AndroidManifest.xml文件,此配置文件是整个程序能够正常运行的核心,它里面包含了Android SDK的版本,程序运行的默认Activity,当程序中的任何一个组件触发事件后,系统都会自动的去AndroidManifest.xml中寻找标识来作出相应的操作。任何一个AndroidManifest.Xml文件的格式都应为: Android系统有一个编码的规定,支持的编码是utf-8,当程序中出现乱码是,我们须将其编码格式转化为utf-8.在 AndroidManifest.xml中会在第一行声明一句:。它是该系统支持的版本和编码。在第二行定义了我们需要使用的架构,该架构来自xmlns:android=/apk/res/androidxmlns(XML namespace)是一个命名空间,它就像一条河的源头一样能让我们找到系统架构,每一个配置文件必须有这个xmlns,否则程序中的所使用的所有资源将无法找到。在application元素我们定义android:icon=drawable/iconandroid:label=string/app_name,android:icon是程序在手机中显示的图片,我们运用drawable/icon表示了对res/drawable目录下的icon.png的引用。string/app_name表示了对res/value目录下string.Xml中定义的app_name参数的引用。这是系统确定的首先要启动的Activity是WelcomingActivity。在intent-filter选项中,有action和category等等属性,我们需要定义action的值为Aent.action.MAIN,category的值为Aent.category.LAUNCHER,它们是系统的值,程序在解析到这些常用后就可以确定首先要启动的Activity。当我们需要通过一个组件触发另一个组件时,我们将设定action和category的其它属性值,系统会根据我们设定的属性值去AndroidManifest.Xml的application 中寻找标识,任何一个Activity的action和category是唯一,所以程序在任何时候都能唯一启动一个Activity,这样,不同的Activity之间的跳转就实现了。在AndroidManifest.Xml中有一个根结点,它是我们需要定义的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这几个版本。如果我们需要对网络进行访问,比如打开一个网页,刚我还需要设置一个网络访问权限uses-permission,将其的值设置为Android:name=Android.permission.INTERNET,我们就可以访问网络了。当然uses-permission还有很多其它的权限,例如GPS定位权限,浏览器数据存取权限com.Android.browser.permission.READ_HISTORY_BOOKMARKS等等。当程序的任何一个组件要用到时,都必须在AndroidManifest.Xml文件中声明。四大组件要使用前都需要声明,其声明方式如下:其中声明provider时还需要声明其授权 authorities。每个组件里面还有很多的属性,会根据程序的具体需要定义不同的属性。过滤器intent-filter 有两种启动方式来启动界面:(1) 显示方式 显示方式是在代码中的直接启动组件,启动时会声明Intent,在它的构造方法Intent(组件1,组件2)中直接指定一个组件的名字,然后调用方法startIntent(intent)以启动指定的组件。(2) 隐式方式隐式方式是通过过滤器来过滤完成的,启动的组件必须满足action和category的条件才能够启动该组件。这些属性是在AndroidManifest.Xml文件中声明的。两种启动方式都可以通过程序setAction(ACTION常量)和startActivity(intent)或配置文件两种方式来实现组件的跳转。第5章 系统功能详细设计5.1 欢迎界面模块详细设计在欢迎界面模块的设计中,应用了LinearLayout布局和Animation效果。开机使用动画效果,5张图片自动变换。欢迎界面模块运行结果如图中部分图片。图51 欢迎界面(1)页面设计整体为LinearLayout布局,其中包含两个ImageView控件,设置两个图片为垂直布局。本LinearLayout布局的id值是 llSplash,背景颜色为“#ffffffff” 。(2)代码编写欢迎界面模块主要是用于增强用户体验,让用户较容易接受本软件。在编写代码前,首先要定义一个Animation类对象,以便编写代码时调用该类中方法,主要代码如下: 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, 1000*3 ); 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所示。 图5-2 主界面(1)页面设计当进入主界面,采用相对布局。删除标题,采用自定义布局。相应代码如下: requestWindowFeature(Window.FEATURE_NO_TITLE);/去掉标题栏线性布局,文字和图片。如下代码: 登陆模块和播放模块采用网格布局。代码如下: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() Overridepublic void onItemClick(AdapterView arg0, View arg1, int arg2,long arg3) Intent intent=new Intent();/ TODO Auto-generated method stubswitch (arg2) case 0:/由首界面跳转到正在播放界面intent.setClass(MainActivity2.this, Login.class); startActivity(intent);break; case 1: /由首界面跳转到本地歌曲界面 intent.setClass(MainActivity2.this, TestMain.class); startActivity(intent);break; default:break;);5.3 播放列表模块详细设计(1)页面设计播放列表界面,默认是Tabhost,且此Tabhost包含四个选项卡,第一个则为音乐播放列表模块。播放列表模块中是一个ListView控件,ListView中的item采用LinearLayout布局,其中包含了歌曲名称信息、歌手名称信息和歌曲时长信息,此三项用TextView显示。(2)界面功能的实现最上面是Tabhost控件,设置四个选项卡。对应的代码如下:TabHost th = getTabHost();View view1 = View.inflate(TestMain.this, R.layout.tabstyle, null);(ImageView)view1.findViewById(R.id.tabstyle_imageview).setImageResource(R.drawable.menu1);/图片(TextView)view1.findViewById(R.id.tabstyle_textview).setText(TAG1);/文字th.addTab(th.newTabSpec(list).setIndicator(view1).setContent(this);view view2 = View.inflate(TestMain.this, R.layout.tabstyle, null);(ImageView)view2.findViewById(R.id.tabstyle_imageview).setImageResource(R.drawable.menu2);/图片(TextView) view2.findViewById(R.id.tabstyle_textview).setText(TAG2);/文字th.addTab(th.newTabSpec(artists).setIndicator(view2).setContent(this);View view3 = View.inflate(TestMain.this, R.layout.tabstyle, null);(ImageView)view3.findViewById(R.id.tabstyle_imageview).setImageResource(R.drawable.menu3);/图片(TextView)view3.findViewById(R.id.tabstyle_textview).setText(TAG3);/文字th.addTab(th.newTabSpec(albums).setIndicator(view3).setContent(this);View view4 = View.inflate(TestMain.this, R.layout.tabstyle, null);(ImageView)view4.findViewById(R.id.tabstyle_imageview).setImageResource(R.drawable.menu4);/图片(TextView)view4.findViewById(R.id.tabstyle_textview).setText(TAG4);/文字th.addTab(th.newTabSpec(recent).setIndicator(view4).setContent(this);Tabhost中的ListView是通过Layout布局文件产生。通过适配器Adapter向其中添加详细的数据。播放列表界面(如图5.3)图 5.3 在Android里面,有一个视图叫ListView,其特点是一个有BaseAdapter的属性,从下到下,或从左到右的显示方式。系统默认的方式每一行只显示一个TextView,本播放列表实现了自定义的方式,刚ListView的每一行显示一个音乐图片和一个歌曲名字。我们定义一个类MusicAdapter 继承了Base
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年老年人健康管理考核试题及答案
- 2025年高年龄测试题及答案
- 慢性膀胱炎合并膀胱黏膜白斑护理查房
- 阿图什市2025-2026学年八年级上学期语文期中模拟试卷
- 安徽省2025年高二学业水平合格性考试数学试卷及答案
- 2025 年小升初福州市初一新生分班考试英语试卷(带答案解析)-(外研版)
- 湖北省2025年一级建筑师建筑材料与构造辅导:喷射混凝土试题
- 山东省日照市莒县第三中学2024-2025学年七年级下学期第三次月考生物试题(含答案)
- 北师大版五年级上册数学第五单元 分数的意义 检测卷(无答案)
- 购买公司的合同范本
- 中级职称评审述职报告
- 2025年9月-2026年1月安全工作安排表
- 2025年事业单位招聘考试建筑类综合能力测试试卷八十二:建筑工程施工监理案例分析八
- 2025年事业单位招聘考试综合类专业能力测试试卷(工程类)-建筑工程施工质量控制
- 2025年教育法学法规试题及答案
- 在接受诫勉谈话时的检讨及整改情况报告
- 汉教课堂观察汇报
- 2025年四川省高考化学试卷真题(含答案解析)
- 小学生养成文明行为习惯自评检查表
- 2025年高级(三级)评茶员职业技能鉴定《理论知识》真题卷(后附答案及解析)
- 2025年注册会计师考试财务成本管理试题及答案解析
评论
0/150
提交评论