木雨音乐 项目开发(八)最近播放界面
来源:互联网 发布: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
- 木雨音乐 项目开发(八)最近播放界面
- 木雨音乐 项目开发(六)音乐播放界面PlayActivity实现
- 自己动手开发音乐播放器《八》迷你界面的实现
- 木雨音乐 项目开发(三)主界面MainActivity
- Android开发本地及网络Mp3音乐播放器(八)状态存取与界面滑动
- 木雨音乐 项目开发(五)Service服务实现播放等功能
- Android开发本地及网络Mp3音乐播放器(十)最近播放界面与数据保存更新
- 木雨音乐 项目开发(七)我的收藏界面
- Android开发界面设计---音乐播放器界面
- 木雨音乐 项目开发(四)本地音乐MyMusicListFragment
- 木雨音乐 项目开发(一)
- Android 音乐播放器的开发教程(十一)SQLite的使用及最近播放的实现 ----- 小达
- Android 音乐播放器的开发教程(三) 小卷毛播放器的主界面开发 ---- 小达
- Android开发本地及网络Mp3音乐播放器(六)实现独立音乐播放界面
- 安卓MP3播放器开发实例(1)之音乐列表界面
- vuejs开发音乐播放器(二):单歌手歌单列表界面
- 自己动手开发音乐播放器(一)主界面的搭建
- 自己动手开发音乐播放器(二)附加界面的搭建
- 二叉树的简单实现 JS
- Mybatis深入学习之映射器XML
- HDU 4462 Scaring the Birds
- [leetcode]54. Spiral Matrix -- JavaScript 代码
- Netty实现按字节解析的socket协议
- 木雨音乐 项目开发(八)最近播放界面
- 织梦dedecms如何做到真正的随机调取文章
- iOS 从浏览器跳转到应用
- [noip模拟赛]祖先(dp)
- JSON数组去重算法
- 如何使用TestFlight进行Beta测试
- rabbitmq 工作队列(java 实现)
- Android状态栏微技巧,带你真正理解沉浸式模式
- 序列化接口的简单理解