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

最近播放界面

实现功能:

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值