手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android 开源在线音乐播放器
Android 开源在线音乐播放器
摘要:封面图:简介波尼音乐是一款开源Android在线音乐播放器。播放本地音乐与在线音乐在线音乐排行榜,如热歌榜、新歌榜等高仿云音乐的黑胶唱片专辑...

封面图:

Android 开源在线音乐播放器1

简介

波尼音乐是一款开源Android在线音乐播放器。 播放本地音乐与在线音乐 在线音乐排行榜,如热歌榜、新歌榜等 高仿云音乐的黑胶唱片专辑封面 歌词显示,自动搜索歌词 夜间模式 定时关闭

更新说明

v 1.0

First Release

TODO

在线音乐可以免下载加入我的音乐列表

在线音乐自动缓存

编辑音乐信息

项目公开API

在线音乐:百度音乐

天气数据:高德地图

开源技术

okhttp-utils

Android-Universal-Image-Loader

关键代码

黑胶唱片专辑封面绘制流程

@Override protected void onDraw(Canvas canvas) { // 1.绘制顶部虚线 mTopLine.setBounds(0, getTop(), getWidth(), getTop() + mTopLineHeight); mTopLine.draw(canvas); // 2.绘制黑胶唱片外侧半透明边框 mCoverBorder.setBounds(mDiscPoint.x - mCoverBorderWidth, mDiscPoint.y - mCoverBorderWidth, mDiscPoint.x + mDiscBitmap.getWidth() + mCoverBorderWidth, mDiscPoint.y + mDiscBitmap.getHeight() + mCoverBorderWidth); mCoverBorder.draw(canvas); // 3.绘制黑胶 // 设置旋转中心和旋转角度,setRotate和preTranslate顺序很重要 mDiscMatrix.setRotate(mDiscRotation, mDiscCenterPoint.x, mDiscCenterPoint.y); // 设置图片起始坐标 mDiscMatrix.preTranslate(mDiscPoint.x, mDiscPoint.y); canvas.drawBitmap(mDiscBitmap, mDiscMatrix, null); // 4.绘制封面 mCoverMatrix.setRotate(mDiscRotation, mCoverCenterPoint.x, mCoverCenterPoint.y); mCoverMatrix.preTranslate(mCoverPoint.x, mCoverPoint.y); canvas.drawBitmap(mCoverBitmap, mCoverMatrix, null); // 5.绘制指针 mNeedleMatrix.setRotate(mNeedleRotation, mNeedleCenterPoint.x, mNeedleCenterPoint.y); mNeedleMatrix.preTranslate(mNeedlePoint.x, mNeedlePoint.y); canvas.drawBitmap(mNeedleBitmap, mNeedleMatrix, null); }

歌词绘制流程

@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // 中心Y坐标 float centerY = getHeight() / 2 + mTextSize / 2 + mAnimOffset; // 无歌词文件 if (!hasLrc()) { float centerX = (getWidth() - mCurrentPaint.measureText(label)) / 2; canvas.drawText(label, centerX, centerY, mCurrentPaint); return; } // 画当前行 String currStr = mLrcTexts.get(mCurrentLine); float currX = (getWidth() - mCurrentPaint.measureText(currStr)) / 2; canvas.drawText(currStr, currX, centerY, mCurrentPaint); // 画当前行上面的 for (int i = mCurrentLine - 1; i >= 0; i--) { 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); } // 画当前行下面的 for (int i = mCurrentLine + 1; i < mLrcTimes.size(); i++) { String downStr = mLrcTexts.get(i); float downX = (getWidth() - mNormalPaint.measureText(downStr)) / 2; float downY = centerY + (mTextSize + mDividerHeight) * (i - mCurrentLine); // 超出屏幕停止绘制 if (downY > getHeight()) { break; } canvas.drawText(downStr, downX, downY, mNormalPaint); } }

以上就是Android 开源在线音乐播放器的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!

【Android 开源在线音乐播放器】相关文章:

Android实现图片循环播放的实例方法

Android开源组件小结

Android应用程序运行的性能设计

Android UI开发专题(一) 之界面设计

Android开发之相对布局

Android 完全退出应用程序的解决方法

Android开场动画实例类Java代码

Android开发之线性布局

android 多线程技术应用

Android实现宫格图片连续滑动效果

精品推荐
分类导航