原工程代码的修改说明_第1页
原工程代码的修改说明_第2页
原工程代码的修改说明_第3页
原工程代码的修改说明_第4页
原工程代码的修改说明_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.前言 在上学期中,我们开发了一个简单的音乐播放器,除了实现基本的音乐播放器功能,还实现了音乐播放,切换主题,进度条等功能。在这学期,我们为此音乐播放器添加更多有趣的功能,为了让原来的程序能在 Android4.X 的系统下运行,以及对架构进行优化,笔者对原程序做出了一下修改。 2.详细说明2.1添加两个类与一个布局文件在原来的基础上,添加了两个类,分别是 Music.java 与 MusicList.java。另外添加了一个 listview.xml 布局文件。如下图所示。 Music.java: 该类包含歌曲的基本属性,如歌曲名,艺术家名,歌曲路径,歌曲总时长等。该类 提供一系列方法,便

2、于用户获取歌曲名,艺术家名,歌曲路径,歌曲总时长等属性。 代码如图所示: MusicList.java: 该类包含了一个类型为 Music 的 ArrayList 对象,用于存放 Music 类的对象,起到了歌词列表的作用。 该类采用单例模式,由于该类构造器修饰符为 private,所以不能直接通过 new 方法生成该类的对象,该类提供了 getMusicList 方法,用户可以调用此方法获取唯一的ArrayList 对象。 代码如图所示: Listview.xml 布局文件: 此文件用于描述 ListView 每个 Item 的布局。该布局上有两个 TextView 组件,分别用于显示歌曲名

3、与艺术家名。 代码如图所示: 2.2修改了初始化歌曲列表的方法在原来的版本,我们使用 setListContent 和 getMusicCursor 方法扫描并更新列表的内容,其中 setListContent 方法中使用 CursorAdapter 适配器对 ListView 进行数据的加载。CursorAdapter 适配器可以直接把数据库的内容映射到 ListView 上。 这样做不方便管理与加载数据,例如我们在获取某一首歌曲的歌曲名,需要频繁, 重复地调用数据库,而且不利于代码维护。 我们可以在程序刚开始运行的时候,马上遍历本地数据库,获取歌曲信息,使用这些信息我们可以对 Music

4、类的对象初始化,然后把这些对象添加到 ArrayList 中,最后我们通过操作 ArrayList 对象,实现获取歌曲名以及更多的操作,这样做也符合面向对象编程的思想。 修改如图所示: (1) 原版本代码 (2) 新版本代码2.3解决在 Android 4.x 系统程序运行的问题笔者并没有过多深入地研究导致的原因,而是参考官方手册重新编写了MediaPlayer 的初始化流程。原来版本中的 MediaPlayer 采用 create 的静态方法设置待播放的文件,新版本则采用 setDataSource 方法设置待播放文件。 原版本代码: 新版本代码:2.4优化了项目架构在 Android 程序

5、开发中,通常采用界面交互模块与逻辑功能模块分离的思想,例如Activity 负责与用户的交互,Service 则负责逻辑功能处理,它们之间通过 Broadcast 进行数据交互。原来版本的程序也采用这种思想,但是有一点缺陷,就是上一首和下一首这两个逻辑功能的方法均在 Activity 中实现,这样做会提高了两个模块之间的耦合度。不利于程序的扩展,因此,笔者对此做出了相应的修改。 原版本程序: 新版本程序: 此时,所有的逻辑操作都在 Service 中实现,而 Activity 则实现通过界面与用户交互,如果我们需要在主界面控制音乐的播放,通过广播发送相应的指令就可以了。 3.参考资料Java 单例模式的探讨 /it_man/article/details/5787567Java 中 ArrayList 类的用法 /YSO1983/archive/2011/08/22/2149711

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论