Android 開源線上音樂播放器_Android

來源:互聯網
上載者:User

封面圖: 

簡介

  1. 波尼音樂是一款開源Android線上音樂播放器。
  2. 播放本地音樂與線上音樂
  3. 線上音樂熱門排行榜,如熱歌榜、新歌榜等
  4. 高仿雲音樂的黑膠唱片專輯封面
  5. 歌詞顯示,自動搜尋歌詞
  6. 夜間模式
  7. 定時關閉

更新說明
v 1.0
First Release

TODO

線上音樂可以免下載加入我的音樂列表
線上音樂自動緩衝
編輯音樂資訊

項目公開API
線上音樂:百度音樂
天氣資料:高德地圖

開源技術

okhttp-utils
Android-Universal-Image-Loader

關鍵代碼

黑膠唱片專輯封面繪製流程

@Overrideprotected 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);}

歌詞繪製流程

@Overrideprotected 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 開源線上音樂播放器的資料整理,後續繼續補充相關資料,謝謝大家對本站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.