您的位置:首页 > 移动开发 > Android开发

木雨音乐 项目开发(八)最近播放界面

2016-08-23 17:23 381 查看

最近播放界面

实现功能:

1、显示最近点击播放的歌星并按时间先后排序(当前显示10条,可自行更改)

2、点击列表播放列表歌曲

3、菜单项实现跳转“我喜欢”界面,清空最近播放列表

木雨音乐 APP已在百度手机助手上架,有兴趣的朋友可以下载,下载地址:http://shouji.baidu.com/software/9785031.html

木雨音乐源码下载地址:http://download.csdn.net/detail/haoxue641/9610782

前面MyLikeMusicListActivity,java和MyMusicListFragment.java中已经设置代码

//保存播放记录
private void savePlayRecord() {
//获取当前正在播放的音乐对象
Mp3Info mp3Info = playService.getMp3Infos().get(playService.getCurrentPosition());
try {
Mp3Info playRecordMp3Info = app.dbUtils.findFirst(Selector.from(Mp3Info.class).where("mp3InfoId", "=", mp3Info.getMp3InfoId()));
if (playRecordMp3Info == null) {
mp3Info.setPlayTime(System.currentTimeMillis());//设置当前播放时间
app.dbUtils.save(mp3Info);
} else {
playRecordMp3Info.setPlayTime(System.currentTimeMillis());
app.dbUtils.update(playRecordMp3Info, "playTime");
}
} catch (DbException e) {
e.printStackTrace();
}
}

PlayRecordListActivity.java最近播放界面代码如下

package com.haoxue.zixueplayer;

import android.content.Intent;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.graphics.drawable.TransitionDrawable;
import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;

import com.haoxue.zixueplayer.adapter.MyMusicListAdapter;
import com.haoxue.zixueplayer.utils.Constant;
import com.haoxue.zixueplayer.vo.Mp3Info;
import com.lidroid.xutils.db.sqlite.Selector;
import com.lidroid.xutils.exception.DbException;

import java.util.ArrayList;
import java.util.List;

/**
* Created by Administrator on 2016/7/30.
*/
public class PlayRecordListActivity extends BaseActivity implements AdapterView.OnItemClickListener{

private ListView listView_paly_record;
private TextView textView2_no_data;
private MuyuPlayerApp app;
private ArrayList<Mp3Info> mp3Infos;
private MyMusicListAdapter adapter;
private Mp3Info mp3Info;

private Drawable oldBackground = null;
private int currentColor = 0x98000000;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
app= (MuyuPlayerApp) getApplication();
setContentView(R.layout.activity_play_record_list);
listView_paly_record= (ListView) findViewById(R.id.listView_paly_record);
textView2_no_data= (TextView) findViewById(R.id.textView2_no_data);
listView_paly_record.setOnItemClickListener(this);
initData();
changeColor(currentColor);
}

@Override
public void onResume() {
super.onResume();
//绑定播放服务
bindPlayService();
}

@Override
public void onPause() {
super.onPause();
//解除绑定播放服务
unbindPlayService();
}

@Override
protected void onDestroy() {
super.onDestroy();
unbindPlayService();//解绑服务
}

//初始化最近播放的数据
private void initData() {
try {
//查询最近播放的记录
List<Mp3Info> list=app.dbUtils.findAll(Selector.from(Mp3Info.class).where("playTime","!=",0).orderBy("playTime",true).limit(Constant.PLAY_RECORD_NUM));
//            System.out.println(list);
if (list == null || list.size()==0) {
textView2_no_data.setVisibility(View.VISIBLE);
listView_paly_record.setVisibility(View.GONE);
}else {
textView2_no_data.setVisibility(View.GONE);
listView_paly_record.setVisibility(View.VISIBLE);
mp3Infos= (ArrayList<Mp3Info>) list;
adapter = new MyMusicListAdapter(this, mp3Infos);
listView_paly_record.setAdapter(adapter);
}
} catch (DbException e) {
e.printStackTrace();
}
}

private void deleteData(){
//查询最近播放的记录
try {
List<Mp3Info> list=app.dbUtils.findAll(Selector.from(Mp3Info.class).where("playTime","!=",0));
for (int i = 0; i <list.size() ; i++) {
mp3Info=list.get(i);
mp3Info.setPlayTime(0);
app.dbUtils.update(mp3Info, "playTime");
}
initData();
} catch (DbException e) {
e.printStackTrace();
}
}

@Override
public void publish(int progress) {

}

@Override
public void change(int position) {

}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (playService.getChangePlayList()!=PlayService.PLAY_RECORD_MUSIC_LIST) {
playService.setMp3Infos(mp3Infos);
playService.setChangePlayList(PlayService.PLAY_RECORD_MUSIC_LIST);
}
playService.play(position);
}

private void changeColor(int newColor) {

// change ActionBar color just if an ActionBar is available
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {

Drawable colorDrawable = new ColorDrawable(newColor);
Drawable bottomDrawable = getResources().getDrawable(R.drawable.actionbar_bottom);
LayerDrawable ld = new LayerDrawable(new Drawable[]{colorDrawable, bottomDrawable});

if (oldBackground == null) {
getActionBar().setBackgroundDrawable(ld);

} else {
TransitionDrawable td = new TransitionDrawable(new Drawable[]{oldBackground, ld});
getActionBar().setBackgroundDrawable(td);
td.startTransition(200);

}

oldBackground = ld;

getActionBar().setDisplayShowTitleEnabled(false);
getActionBar().setDisplayShowTitleEnabled(true);

}

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.record_menu, menu);
return true;
}

public boolean onOptionsItemSelected(MenuItem item) {
Intent intent;
switch (item.getItemId()) {
case R.id.ilike_play:
intent = new Intent(this, MyLikeMusicListActivity.class);
startActivity(intent);
finish();
break;
case R.id.delete_list:
deleteData();
break;
}
return true;
}

}

activity_play_record_list.xml代码如下

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listView_paly_record"
android:layout_alignParentStart="true"
android:layout_below="@+id/textView" />

<TextView
android:layout_width="match_parent"
android:layout_height="47dp"
android:gravity="center"
android:text="@string/record_music"
android:textSize="15sp"
android:textColor="@android:color/white"
android:id="@+
4000
id/textView"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="#4d4b4646" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/no_data"
android:textSize="30sp"
android:textColor="@android:color/white"
android:id="@+id/textView2_no_data"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />

</RelativeLayout>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐