嗯 先上两张图~~
这里两张图片,第一张是列表界面,也是主界面,能显示歌曲界面个下面的播放栏,播放栏点击能进入第二个界面,也能够控制歌曲的播放个暂停。
第二个界面是播放界面,这个界面的解析下一篇说道,这里先列出这里是为了让你们理解这两个界面的关系,好看注释时别弄混了。
其实我还是想实现歌曲分组和专辑分组的,可是到了后面,我发现太多代码写在这个主界面了,不好修改。当时也没什么时间,也就没改了,不过这样看上去还不错。material design的效果看上去还不错。
就是这么多了,我把对代码的解析全写在注释里了,一来,我方便些,二来你们也方便看,如果有什么问题,可以留言给我。
/**
* AppControl.JUDGE_DESTORY_ONCREATE 这个有时候会失灵的问题还是没解决
* author:verzqli
*/
public class MainActivity extends AppCompatActivity implements View.OnClickListener, PlatformActionListener {
private Button mainPlaySong; //主页的播放/暂停按键
private ImageView imSongPlaying; //下面正在播放的歌曲图片
private List<Song> songList;
private ListView songListView; //歌曲列表显示
private SongListAdapter songListAdapter; //歌曲列表适配器
private Intent intent; //跳转activity
private MainReceiver mainReceiver; //列表广播接收器
private int songListPosition = 0; //选择音乐位置
private int currentTime; //当前播放时间
private long duration; //当前播放歌曲长度
private LinearLayout linMainButtom; //列表下正在播放
private boolean isPlayingBtn; //判断开始音乐按键
private ContentValues values; //存入数据库的歌曲状态
private Toolbar toolbar;
private TextView songTitlePlay;
private TextView songTitleArt;
private SongBitmapThread songBitmapThread;
private NotificationManager notificationManager;
private RemoteViews contentView;
private Boolean isRealDestroy;
//更新主页面下面按键状态的变化(即后面如果按了暂停,前面列表这里的图标会改变)
public static final String SONG_STATE_UPDATE = "com.verzqli.SONG_STATE_UPDATE";
//更新主页面的按键状态到播放页面中,即主页面如果按了暂停,播放界面的图标会改变
public static final String SONG_STATE_PRESS = "com.verzqli.SONG_STATE_PRESS";
//音乐当前时间改变事件
public static final String MUSIC_CURRENT = "com.verzqli.action.MUSIC_CURRENT";
//音乐播放长度改变事件
public static final String MUSIC_DURATION = "com.verzqli.action.MUSIC_DURATION";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ShareSDK.initSDK(this);
setContentView(R.layout.content_main);
toolbar = (Toolbar) findViewById(R.id.id_toolbar);
isRealDestroy = false;
setSupportActionBar(toolbar);
toolbar.setNavigationIcon(R.drawable.title_icon);
/**
* 这里是主界面右上角的分享功能,用了shareSDK来完成QQ分享
*/
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
String msg = "";
switch (menuItem.getItemId()) {
case R.id.action_share:
Platform.ShareParams qq = new Platform.ShareParams();
qq.setTitle("分享歌曲");
qq.setTitleUrl("http://mob.com");
qq.setText("给你们分享一首歌:" + songList.get(songListPosition).getTitle());
qq.setImageUrl("http://p0.so.qhimg.com/dmt/73_100_/t01d66f2efb44823d25.jpg");
qq.setMusicUrl("http://music.baidu.com/search?key=" + songList.get(songListPosition).getTitle());
Platform qqq = ShareSDK.getPlatform(MainActivity.