[毕业论文]Android在线音乐播放器设计与实现 下载本文

西南科技大学本科生毕业论文

String upStr = mLrcTexts.get(i); float upX = (getWidth() - mNormalPaint.measureText(upStr)) / 2; float upY = centerY - (mTextSize + mDividerHeight) * (mCurrentLine - i); // 超出屏幕停止绘制 if (upY - mTextSize < 0) { break; } canvas.drawText(upStr, upX, upY, mNormalPaint); } 补充说明 不包含歌词的歌曲将自动从网络匹配歌词 (3) 播放控制界面设计

图5-5播放控制界面设计(1) 图5-6播放控制界面设计(2)

5.2.5 扩展功能详细设计

扩展功能包含天气信息,功能设置,夜间模式,定时停止播放等功能,通过主界面的导航栏选择。天气信息显示当前城市实时天气;功能设置允许用户自定义偏好设置,如音效设置;夜间模式可以一键切换护眼模式。

(1) 扩展功能相关类详细说明

37

西南科技大学本科生毕业论文 表5-9 扩展功能相关类详细说明

类名 WeatherExecutor NaviMenuExecutor SettingActivity AboutActivity 父类 Object Object BaseActivity BaseActivity 接口 AMapLocalWeatherListener 含义 更新天气界面 导航栏功能实现 用户设置界面 关于界面 (2) 扩展功能设计与实现

表5-10 扩展功能设计与实现

功能描述 接口与属性 核心代码 播放器附加的实用功能,如夜间模式,定时停止播放等 启动应用,点击菜单键弹出导航栏 // 切换夜间模式 DisplayMetrics dm = sRes.getDisplayMetrics(); Configuration config = sRes.getConfiguration(); config.uiMode &= ~Configuration.UI_MODE_NIGHT_MASK; config.uiMode |= on ? Configuration.UI_MODE_NIGHT_YES : Configuration.UI_MODE_NIGHT_NO; // 更新Resource配置 sRes.updateConfiguration(config, dm); // 定时停止播放 public void startQuitTimer(long milli) { stopQuitTimer(); if (milli > 0) { // 启动定时 quitTimerRemain = milli + DateUtils.SECOND_IN_MILLIS; mHandler.post(mQuitRunnable); } else { // 关闭定时 quitTimerRemain = 0; mListener.onTimer(quitTimerRemain); } } private Runnable mQuitRunnable = new Runnable() { @Override public void run() { quitTimerRemain -= DateUtils.SECOND_IN_MILLIS; if (quitTimerRemain > 0) { // 循环等待 mListener.onTimer(quitTimerRemain); mHandler.postDelayed(this, DateUtils.SECOND_IN_MILLIS); 38

西南科技大学本科生毕业论文

} else { // 时间到,结束Activity,停止Service SystemUtils.clearStack(sActivityStack); stop(); } } }; 补充说明 切换夜间模式不会影响当前的播放 (3) 扩展功能界面设计

图5-7扩展功能界面设计(1) 图5-8扩展功能界面设计(2)

5.2.6 功能设置详细设计

点击导航栏item“功能设置”,进入功能设置界面,允许用户自定义偏好设置,如是否允许移动网络下播放歌曲,下载歌曲,音效调节。

(1) 功能设置相关类详细说明

39

西南科技大学本科生毕业论文 表5-11 功能设置相关类详细说明

类名 SettingActivity SettingFragment Preference Preferences 父类 BaseActivity PreferenceFragment Object Object 接口 OnPreferenceClickListener Comparable 含义 功能设置主界面,显示设置项 功能设置Fragment,用于处理用户设置 设置项对象 用户设置工具类 (2) 功能设置设计与实现

表5-12 功能设置设计与实现

功能描述 接口与属性 核心代码 播放器常用功能的选项设置,如音效调节 启动应用,点击菜单键弹出导航栏,点击功能设置 Intent intent = new Intent(\intent.putExtra(\getActivity().getPackageName()); intent.putExtra(\intent.putExtra(\// try catch包围,防止手机不支持音效调节的情况下FC try { startActivity(intent); } catch (Exception e) { e.printStackTrace(); ToastUtils.show(R.string.device_not_support); } 补充说明 如果用户禁止移动网络播放/下载歌曲,则在播放/下载歌曲时会弹出Alert询问用户是否允许移动网络播放/下载 (3) 功能设置界面设计

40