我的Android音乐播放器开发之旅.doc_第1页
我的Android音乐播放器开发之旅.doc_第2页
我的Android音乐播放器开发之旅.doc_第3页
我的Android音乐播放器开发之旅.doc_第4页
我的Android音乐播放器开发之旅.doc_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

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

文档简介

我的Android音乐播放器开发之旅界面篇文章分类:移动开发 学习Android已经有一段时间了,不过由于自身课程和各种事情的原因,我的学习过程也是断断续续的。这段时间,我利用课余时间开发了一款Android平台的音乐播放器,暂时只实现了本地播放,网络播放的部分在以后会陆续加上。好了,下面就进入我的Android 音乐播放器开发之旅吧,首先是界面篇。 1.播放列表的实现 播放列表的实现用到了ListView。在res/layout文件夹下新建两个XML布局文件:list.xml和musicitem.xml,其代码和作用分别如下: list.xml:播放列表的布局文件。Xml代码 1. 2. 6. 8. musicitem.xml:每一条列表的布局。Xml代码 1. 2. 6. 8. 11. 14. 播放列表的界面如下: 从SD卡上扫描出媒体文件的类如下: Java代码 1. packagecom.mp3player.utils; 2. importjava.util.ArrayList; 3. importjava.util.HashMap; 4. importjava.util.List; 5. importjava.util.Map; 6. importcom.mp3player.R; 7. importandroid.content.ContentResolver; 8. importandroid.database.Cursor; 9. vider.MediaStore; 10. 11. publicclassGetList 12. 13. /* 14. *音乐文件筛选 15. */16. privatestaticStringselection=MediaStore.Audio.Media.IS_MUSIC+!=0; 17. 18. privatestaticStringprojection=MediaStore.Audio.Media._ID,/歌曲ID 19. MediaStore.Audio.Media.TITLE,/歌曲标题 20. MediaStore.Audio.Media.ALBUM,/专辑 21. MediaStore.Audio.Media.ARTIST,/歌手 22. MediaStore.Audio.Media.DURATION,/时长 23. MediaStore.Audio.Media.SIZE,/大小 24. MediaStore.Audio.Media.DATA;/路径 25. /* 26. *查询游标 27. */28. 29. privateCursorcursor=null; 30. 31. /* 32. *获得音乐信息列表 33. */34. 35. publicListMapgetMusicInfors(ContentResolvercr) 36. cursor=cr.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 37. projection,selection,null,null); 38. ListMaplistInfor=newArrayListMap(); 39. if(cursor=null) 40. returnlistInfor; 41. else 42. while(cursor.moveToNext() 43. Mapmap=newHashMap(); 44. map.put(pic,R.drawable.song); 45. map.put(name,cursor.getString(1); 46. map.put(totaltime,getTime(cursor.getString(4); 47. map.put(album,cursor.getString(2); 48. map.put(singer,cursor.getString(3); 49. map.put(data,cursor.getString(6); 50. listInfor.add(map); 51. 52. returnlistInfor; 53. 54. 55. /* 56. *音乐的时间表达 57. */58. privatestaticStringgetTime(Stringstr) 59. inttime=Integer.parseInt(str); 60. Stringmytime=; 61. intminutes=(time/1000)/60; 62. intseconds=(time/1000)-60*minutes; 63. if(seconds=0&seconds=9) 64. mytime=minutes+:+0+seconds; 65. else 66. mytime=minutes+:+seconds; 67. 68. returnmytime; 69. 70. package com.mp3player.utils;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.mp3player.R;import android.content.ContentResolver;import android.database.Cursor;import vider.MediaStore;public class GetList /* * 音乐文件筛选 */private static String selection = MediaStore.Audio.Media.IS_MUSIC + != 0;private static String projection = MediaStore.Audio.Media._ID,/ 歌曲IDMediaStore.Audio.Media.TITLE,/ 歌曲标题MediaStore.Audio.Media.ALBUM,/ 专辑MediaStore.Audio.Media.ARTIST, / 歌手MediaStore.Audio.Media.DURATION, / 时长MediaStore.Audio.Media.SIZE,/ 大小MediaStore.Audio.Media.DATA ;/ 路径/* * 查询游标 */private Cursor cursor = null;/* * 获得音乐信息列表 */public ListMap getMusicInfors(ContentResolver cr) cursor=cr.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,projection, selection, null, null);ListMap listInfor = new ArrayListMap();if(cursor=null)return listInfor;elsewhile (cursor.moveToNext() Map map = new HashMap();map.put(pic, R.drawable.song);map.put(name, cursor.getString(1);map.put(totaltime, getTime(cursor.getString(4);map.put(album, cursor.getString(2);map.put(singer, cursor.getString(3);map.put(data, cursor.getString(6);listInfor.add(map);return listInfor;/* * 音乐的时间表达 */private static String getTime(String str)int time =Integer.parseInt(str);String mytime=;int minutes = (time/1000)/60; int seconds = (time/1000)-60*minutes; if(seconds=0&seconds=9) mytime = minutes+:+0+seconds; else mytime = minutes+:+seconds; return mytime; 编写一个显示播放列表及响应的ActivityMp3ListActivity,其中用于显示播放列表的代码如下:Java代码 1. setContentView(R.layout.list); 2. ListViewlist=(ListView)findViewById(R.id.list); 3. GetListgetlist=newGetList(); 4. fileInforList=getlist.getMusicInfors(this.getContentResolver(); 5. SimpleAdapteradapter=newSimpleAdapter(this,fileInforList, 6. R.layout.musicitem, 7. newStringpic,name,totaltime,newint 8. R.id.pic,R.,R.id.totaltime); 9. list.setAdapter(adapter); 10. list.setOnItemClickListener(newlistClickListener(); setContentView(R.layout.list);ListView list = (ListView) findViewById(R.id.list);GetList getlist = new GetList();fileInforList = getlist.getMusicInfors(this.getContentResolver();SimpleAdapter adapter = new SimpleAdapter(this, fileInforList,R.layout.musicitem,new String pic, name, totaltime , new int R.id.pic, R., R.id.totaltime );list.setAdapt

温馨提示

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

评论

0/150

提交评论