本文共 3571 字,大约阅读时间需要 11 分钟。
在基于存储卡音乐播放器V0.2基础上,增加功能:
添加一个音乐播放列表(显示歌名) – 单击某一首音乐就立刻播放,播放进度清零,显示当前音乐的播放时长。 添加一个【上一首】与【下一首】按钮 – 当前音乐为第一首时,单击【上一首】按钮,切换到最后一首音乐。 – 当前音乐为最后一首时,单击【下一首】按钮,切换到第一首音乐。 – 当某一首音乐播放完毕后,会自动切换到下一首音乐播放。package com.zjs.sdcard_music_player_v03.util;import java.text.SimpleDateFormat;/** * 功能:常用工具类 */public class CommonUtils { private static SimpleDateFormat sdf = new SimpleDateFormat("mm:ss"); // 简单日期格式 /** * 获取格式化时间 * * @param time 单位是毫秒 * @return mm:ss格式的时间 */ public static String getFormatTime(int time) { return sdf.format(time); }}
package com.zjs.sdcard_music_player_v03.entity;/** * 功能:音乐实体类 */public class Music { private String musicName; // 音乐名 public String getMusicName() { return musicName; } public void setMusicName(String musicName) { this.musicName = musicName; } @Override public String toString() { return "Music{" + "musicName='" + musicName + '\'' + '}'; }}
package com.zjs.sdcard_music_player_v03.adapter;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import com.zjs.sdcard_music_player_v03.R;import com.zjs.sdcard_music_player_v03.entity.Music;import java.util.List;/** * 功能:音乐适配器 */public class MusicAdapter extends BaseAdapter { private Context context; // 上下文 private ListmusicList; // 音乐列表 /** * 构造方法 * * @param context * @param musicList */ public MusicAdapter(Context context, List musicList) { this.context = context; this.musicList = musicList; } @Override public int getCount() { return musicList.size(); } @Override public Object getItem(int position) { return musicList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // 声明视图容器 ViewHolder holder = null; // 判断转换视图是否为空 if (convertView == null) { // 将列表项模板映射成转换视图 convertView = LayoutInflater.from(context).inflate(R.layout.music_name_list_item, null); // 创建视图容器对象 holder = new ViewHolder(); // 实例化转换视图里的控件 holder.tvMusicName = convertView.findViewById(R.id.tvMusicName); // 将视图容器附加到转换视图 convertView.setTag(holder); } else { // 从转换视图里取出视图容器 holder = (ViewHolder) convertView.getTag(); } // 获取列表项要显示的数据 Music music = musicList.get(position); // 设置列表项控件的属性 holder.tvMusicName.setText(music.getMusicName().substring(0, music.getMusicName().lastIndexOf("."))); // 返回转换视图 return convertView; } /** * 视图容器 */ private static class ViewHolder { TextView tvMusicName; }}
此版本是v0.2个版本中优化得来,以上便是此次总结
转载地址:http://yjtki.baihongyu.com/