PonyMusic

所属分类:android开发
开发工具:Java
文件大小:999KB
下载次数:10
上传日期:2016-09-02 16:47:53
上 传 者yuill
说明:  一款开源Android在线音乐播放器。 功能: 播放本地音乐与在线音乐 在线音乐排行榜,如热歌榜、新歌榜等 高仿云音乐的黑胶唱片专辑封面 歌词显示,自动搜索歌词 夜间模式 定时关闭
(An open source Android online music player. Function: play local music online music online music charts, such as hot song list, the new album, such as high black plastic music album cover song lyrics display, automatic search lyrics night mode timing closure )

文件列表:
PonyMusic\app\build.gradle (1719, 2016-08-26)
PonyMusic\app\debug.keystore (2146, 2016-08-26)
PonyMusic\app\libs\AMap_Location_1.3.3.jar (201586, 2016-08-26)
PonyMusic\app\proguard-rules.pro (2663, 2016-08-26)
PonyMusic\app\src\main\AndroidManifest.xml (3457, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\activity\AboutActivity.java (3287, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\activity\ArtistInfoActivity.java (7448, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\activity\BaseActivity.java (4049, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\activity\MusicActivity.java (11259, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\activity\OnlineMusicActivity.java (11645, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\activity\SearchMusicActivity.java (9192, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\activity\SettingActivity.java (1943, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\activity\SplashActivity.java (4982, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\adapter\FragmentAdapter.java (766, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\adapter\LocalMusicAdapter.java (3412, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\adapter\OnlineMusicAdapter.java (2862, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\adapter\OnMoreClickListener.java (202, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\adapter\PlayPagerAdapter.java (948, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\adapter\SearchMusicAdapter.java (2520, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\adapter\SongListAdapter.java (7417, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\application\MusicApplication.java (2449, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\callback\JsonCallback.java (757, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\enums\LoadStateEnum.java (201, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\enums\PlayModeEnum.java (592, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\executor\CrashHandler.java (2185, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\executor\DownloadOnlineMusic.java (5097, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\executor\DownloadSearchedMusic.java (5762, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\executor\NaviMenuExecutor.java (3777, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\executor\PlayOnlineMusic.java (6103, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\executor\PlaySearchedMusic.java (5315, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\executor\SearchLrc.java (2838, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\executor\ShareOnlineMusic.java (2380, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\executor\WeatherExecutor.java (5368, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\fragment\BaseFragment.java (1429, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\fragment\LocalMusicFragment.java (9159, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\fragment\PlayFragment.java (12320, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\fragment\SongListFragment.java (2613, 2016-08-26)
PonyMusic\app\src\main\java\me\wcy\music\model\JArtistInfo.java (1829, 2016-08-26)
... ...

# 波尼音乐 ![](https://raw.githubusercontent.com/ChanWong21/PonyMusic/master/app/src/main/res/drawable-xxhdpi/ic_launcher.png) ## 系列文章 * [Android开源在线音乐播放器——波尼音乐](http://www.jianshu.com/p/1c0f5c4f***fa) * [Android开源音乐播放器之播放器基本功能](http://www.jianshu.com/p/bc2f779a5400) * [Android开源音乐播放器之高仿云音乐黑胶唱片](http://www.jianshu.com/p/f1d8eb8bb3e5) * [Android开源音乐播放器之自动滚动歌词](http://www.jianshu.com/p/0feb6171b0c5) * [Android开源音乐播放器之在线音乐列表自动加载更多](http://www.jianshu.com/p/5765***627c96) ## 前言 毕业设计做的项目,答辩完了,就共享出来。
**注意:fir的key我没有提交,可直接忽略。** * **开源不易,希望能给个Star鼓励** * 项目地址:https://github.com/ChanWong21/PonyMusic * 有问题请提Issues ## 简介 波尼音乐是一款开源Android在线音乐播放器。 - 播放本地音乐与在线音乐 - 在线音乐排行榜,如热歌榜、新歌榜等 - 高仿云音乐的黑胶唱片专辑封面 - 歌词显示,自动搜索歌词 - 夜间模式 - 定时关闭 ## 更新说明 `v 1.0` * First Release ## 下载地址 fir.im:http://fir.im/ponymusic ## TODO * 在线音乐可以免下载加入我的音乐列表 * 在线音乐自动缓存 * 编辑音乐信息 ## 项目 ### 公开API * 在线音乐:[百度音乐](http://mrasong.com/a/baidu-mp3-api-full) * 天气数据:[高德地图](http://lbs.amap.com/) ### 开源技术 * [okhttp-utils](https://github.com/hongyangAndroid/okhttp-utils) * [Android-Universal-Image-Loader](https://github.com/nostra13/Android-Universal-Image-Loader) ### 关键代码 黑胶唱片专辑封面绘制流程 ```java @Override protected void onDraw(Canvas canvas) { // 1.绘制顶部虚线 mTopLine.setBounds(0, 0, getWidth(), 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); } ``` 歌词绘制流程 ```java @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); } } ``` ## 截图 ![](https://raw.githubusercontent.com/ChanWong21/PonyMusic/master/art/screenshot_01.jpg) ![](https://raw.githubusercontent.com/ChanWong21/PonyMusic/master/art/screenshot_02.jpg) ![](https://raw.githubusercontent.com/ChanWong21/PonyMusic/master/art/screenshot_03.jpg) ![](https://raw.githubusercontent.com/ChanWong21/PonyMusic/master/art/screenshot_04.jpg) ![](https://raw.githubusercontent.com/ChanWong21/PonyMusic/master/art/screenshot_05.jpg) ![](https://raw.githubusercontent.com/ChanWong21/PonyMusic/master/art/screenshot_06.jpg) ## 关于作者 简书:http://www.jianshu.com/users/323157***93ac
微博:http://weibo.com/wangchenyan1993 ## License Copyright 2016 Chay Wong Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

近期下载者

相关文件


收藏者