Android小卷毛音乐播放器开发教程(一)
前言:2014年12月5号的时候,刚加入学校里的团队不久,组长会给新人发布任务,让我们在做项目的过程中能快速的熟悉android的各项基本知识。第一次的任务就是做一个android的音乐播放器。当时拿到任务的时候也是愣了≡ ̄﹏ ̄≡,什么都不知道,怎么做。然而身为一个程序员,速效的学习并且能灵活的使用,是一项必备的技能,面对问题,咱不能怂,怂就输一半儿,二话不说就是干
。大二的小达课还是比较多的,抽出零碎的时间,还有牺牲周末等等,花了18天的时间,憋出了个播放器(辣鸡播放器,大神勿喷,初次接触android
)。期间很感谢简美音乐播放器(作者:小巫)的许多易懂的教程,还有网上各路大神的代码,下面就展示下小达的成果。(小心被亮瞎,界面丑暴,23333)。
第一阶段完成的功能:
1.获取歌曲并显示为歌曲列表
2.点击列表自动播放
3.暂停、上一首、下一首
4.播放模式的选择
5.自动切换到下一首
第二阶段完成的功能:
1.歌词的动态显示(没有滚起来。。。)
2.我的最爱歌曲加入和删除
3.最近播放的歌曲记录
待完成的任务:
1.专辑图片的获取(搞了好长时间没弄出来)
2.来电的处理
3.歌曲分享等模块
4.创建自己的歌单
废话不多说,直接上源码。小卷毛音乐播放器下载
各位飘过的、路过的大神,代码写的有点乱,求轻喷,23333,刚接触android,求指点,我会好好的改正,谢谢咯。
小卷毛播放器的全貌,,,自己都不忍直视,这界面还是后来做到一半了改过的,没有设计师的苦逼程序猿,之前的那个UI丑的不能要。做完这个东西最大的体会就是,UI设计还是超重要的,改起来有点麻烦(好像是个人太水了哈。。。)。有人会问,,我这素材到哪里找的?木有设计师,只能自己默默的反编译天天动听了,,偷别人设计师的,23333,会在后面一篇双手奉上我的教程。
简单说一下,主界面能用的模块有我的音乐、我的最爱、最近播放。整个播放器我先用的是好多个Activity,但是做到中间发现Activity不怎么灵活,在学习的过程中发现有个东西叫Fragment(不要翻译成碎片,不然怪怪的,23333)。这个Fragment更加灵活方便。后来花了2天的时间边学边改,真是痛苦。将整个播放器只用了一个Activity,其余的全是fragment。
先贴出activity的源代码吧。
package com.example.dada.myapplication;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.app.Notification;
import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Message;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.SeekBar;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.Toast;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import android.os.Handler;
public class MainActivity extends Activity implements AppConstant, //用Fragment的时候,Activity实现Fragment的内部接口
MainFragment.OnMainFragmentInteractionListener,
MyMusicFragment.OnMyMusicFragmentInteractionListen