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

来源:互联网 发布:mac usb有线网卡驱动 编辑:程序博客网 时间:2024/04/29 22:09

最近播放界面

实现功能:

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="@+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>




0 0
原创粉丝点击