木雨音乐 项目开发(八)最近播放界面
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>
相关文章推荐
- 木雨音乐 项目开发(六)音乐播放界面PlayActivity实现
- Android开发本地及网络Mp3音乐播放器(十)最近播放界面与数据保存更新
- Android开发之第一个小项目--我的MP3播放器之播放界面的实现(三)
- Android开发本地及网络Mp3音乐播放器(六)实现独立音乐播放界面
- 木雨音乐 项目开发(七)我的收藏界面
- Android开发本地及网络Mp3音乐播放器(十)最近播放界面与数据保存更新
- 木雨音乐 项目开发(五)Service服务实现播放等功能
- Android开发本地及网络Mp3音乐播放器(六)实现独立音乐播放界面
- 由于Python本身自带的界面库功能并不强大,我们使用Python+wxPython作为界面开发平台,在公司新的项目中进行界面开发。开发过程使用Eclipse+PyDev 作为集成开发环境。产品发布时使用Py2exe进行打包。如今,在我的团队中,Pytho
- Android游戏开发之旅(十六) 异步音乐播放
- 项目中使用的界面组件布局开发流程
- 最近利用flex开发项目的一些心得
- 最近项目报表开发中写的存储过程-学生综合成绩对比
- 最近项目的一些界面图形
- 最近项目上没有很忙的事情,想利用这段时间来写写这几年来在项目开发上的一些心得体会,乐于跟大家分享
- 最近想用用EXT 做项目开发
- 项目需要,最近在着手开发的一个网站队列处理系统的一个网络模块
- 最近项目报表开发中写的储存过程-成绩纵向对比
- 最近的一个项目中基于MsCrm二次开发的操作总结
- 最近没有做软件开发的项目