内容发布更新时间 : 2024/12/23 5:23:30星期一 下面是文章的全部内容请认真阅读。
基于Android平台的手机音乐播放器的设计与实现
sendBroadcast(i);// 发送广播
} }); 2. 上一曲
// 上一首
previousbtn.setOnClickListener(new OnClickListener() { public void onClick(View v) {
Intent i = new Intent(Const.MUSIC_CONTROL);
int cmd = Const.CMD_PREV;// 发送前一首的命令 i.putExtra(\sendBroadcast(i);
} });
3. 下一曲
// 下一首键事件监听器
nextBtn.setOnClickListener(new OnClickListener() { public void onClick(View v) {
Intent i = new Intent(Const.MUSIC_CONTROL); int cmd = Const.CMD_NEXT; i.putExtra(\ sendBroadcast(i); } });
这样播放器的基本功能就已经被实现了,当然对此界面还有很多小细节的设计,在这里就拿代码了,界面的代码会附在后面的附录上。
5.3 播放列表的设计
对于播放列表的设计,我采用的先布置item形式布局,然后再设置其中一个item布局这样整个列表就能实现了。下面我们就先为播放列表布局(以item形式布局)。代码如下:
- 32 -
为其简单的布置属性会得到如图5-14的效果。
图5-14 歌曲列表的简单布局
5.3.1 默认播放列表设计
现在我们为每个item布局,因为每个item将会显示一条音乐信息,我需要在歌曲列表上也能显示每首歌的基本信息,如歌曲的名字、歌手的名字、歌曲的时间长度等。所以也要为每个item进行布局来显示歌曲的基本信息。布局的简单代码如下:
- 33 -
基于Android平台的手机音乐播放器的设计与实现
简单布局以后会得到如图5-15的效果。
图5-15 每个item的布局
在得到初步的布局以后,我们就可以再不举例做细致的编写,可以让界面变得更加美观,精致。
在Android里面,有一个视图叫ListView,其特点是一个有BaseAdapter的属性,从下到下,或从左到右的显示方式。系统默认的方式每一行只显示一个TextView,本播放列表实现了自定义的方式,刚ListView的每一行显示一个音乐图片和一个歌曲名字。我们定义一个类MusicAdapter 继承了BaseAdapter,然后通过算法对这个适配器进行扩展,扩展成为第一行能显示一张图片和一个歌曲名字。由于BaseAdapter是一个抽象类,我们需要实现里面的抽象方法getView()。该方法返回一个View,即视图。视图可以显示在Activity上,所以就可以看到我们想要的歌曲列表界面。
ListView同样有一个监听器 new onItemClickListener(){
@Override
- 34 -
public void onItemClick(AdapterView> arg0, View arg1, int arg2,long arg3) {}}
我们只要实现这个方法,就可以监听鼠标的点击事件,当鼠标点击到每一行时,可以通过ListView.getItemAtPositon(int position)得到该行上的信息。这样就可以通过Intent将数据传入到其它的Activity。本程序的思路是当鼠标点击一行,会跳转到另一个Activity里面,这个Activity和歌曲列表类似,也是一个ListView,该界面将在下一节介绍。
歌曲列表是从播放主界面跳转过来的,能跳到该歌曲列表是前提是数据有歌曲列表的存在。因为每次歌曲列表显示时会查询数据库中的歌曲列表。如果不存在,则点击mune键,然后会有提示,会即时更新sdcard里的歌曲。如图5-16。
图5-16 刷新媒体库中的音乐文件
5.3.2 自定义播放列表设计
自定义播放列表的设计与默认列表的设计差不多,将本地音乐中的音乐文件有选择性的添加的自定义播放列表,好处是直接播放自定义中喜欢的音乐,界面与默认列表的设计完全一样,这里就不再多说了。
5.4 其他功能的设计
主菜单是用户可以去对音乐文件进行管理,对音乐文件管理也需要把音乐文件以列表的形式展示出来,在以下几个功能都是需要音乐列表,每个Activity(界面)都是用的
- 35 -
基于Android平台的手机音乐播放器的设计与实现
之前用的item布局的,在以下界面的布局就不多说了,跟前面的一样。主菜单功能主要可分为以下四个功能。 5.4.1 本地音乐
本地音乐是列出手机sdcard里的音乐文件。解析sdcard中.mp3格式的文件,歌曲的名字、歌手名字、时长、专辑名称等,在本Activity中也是以Item形式展现出来,通过添加系统菜单,来刷新本地音乐,如果本地音乐有改动,添加了音乐、删除了音乐,都可通过点击menu菜单,选择刷新就可及时获得媒体库中的音乐文件,当长按某一个歌曲的时候,应该实现本地音乐删除、添加到音乐收藏、播放、添加到自定义的播放列表等操作,具体的实现是通过监听器实现的,具体代码如下:
private void addListener() {
mlv.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { @Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
menu.add(0, MENU_DELETE, 1, \删除音乐\menu.add(0, MENU_ADDGROUP, 1, \音乐收藏\menu.add(1, MENU_PLAY, 1, \播放\
menu.add(1, MENU_ADD_TO_PLAYLIST, 2, \添加到播放列表\menu.setHeaderIcon(android.R.drawable.ic_dialog_info); menu.setHeaderTitle(\操作\
} }); }
最后是通过toast的方法,对以操作展示给用户以方便用户知晓刚才的操作。添加的系统菜单如图5-17。
图5-17 对本地音乐操作的界面
- 36 -