Android 开源在线音乐播放器
程序员文章站
2024-03-06 09:31:31
封面图:
简介
波尼音乐是一款开源android在线音乐播放器。
播放本地音乐与在线音乐
在线音乐排行榜,如热歌榜、新歌榜等...
封面图:
简介
- 波尼音乐是一款开源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开源项目PullToRefresh下拉刷新功能详解
-
Android开源项目PullToRefresh下拉刷新功能详解2
-
Android基于Service的音乐播放器
-
Android绘制音乐播放器示波器
-
Android 开源在线音乐播放器
-
Android开源项目PullToRefresh下拉刷新功能详解2
-
Android 使用Vitamio打造自己的万能播放器(3)——本地播放(主界面、播放列表)
-
Android 使用Vitamio打造自己的万能播放器(10)—— 本地播放 (缩略图、视频信息、视频扫描服务)
-
Android 使用Vitamio打造自己的万能播放器(8)——细节优化