欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android 開(kāi)源在線音樂(lè)播放器

 更新時(shí)間:2016年09月20日 09:30:56   投稿:lqh  
這篇文章主要介紹了Android 開(kāi)源在線音樂(lè)播放器的相關(guān)資料,需要的朋友可以參考下

封面圖: 

簡(jiǎn)介

  1. 波尼音樂(lè)是一款開(kāi)源Android在線音樂(lè)播放器。
  2. 播放本地音樂(lè)與在線音樂(lè)
  3. 在線音樂(lè)排行榜,如熱歌榜、新歌榜等
  4. 高仿云音樂(lè)的黑膠唱片專(zhuān)輯封面
  5. 歌詞顯示,自動(dòng)搜索歌詞
  6. 夜間模式
  7. 定時(shí)關(guān)閉

更新說(shuō)明
v 1.0
First Release

TODO

在線音樂(lè)可以免下載加入我的音樂(lè)列表
在線音樂(lè)自動(dòng)緩存
編輯音樂(lè)信息

項(xiàng)目公開(kāi)API
在線音樂(lè):百度音樂(lè)
天氣數(shù)據(jù):高德地圖

開(kāi)源技術(shù)

okhttp-utils
Android-Universal-Image-Loader

關(guān)鍵代碼

黑膠唱片專(zhuān)輯封面繪制流程

@Override
protected void onDraw(Canvas canvas) {
  // 1.繪制頂部虛線
  mTopLine.setBounds(0, getTop(), getWidth(), getTop() + mTopLineHeight);
  mTopLine.draw(canvas);
  // 2.繪制黑膠唱片外側(cè)半透明邊框
  mCoverBorder.setBounds(mDiscPoint.x - mCoverBorderWidth, mDiscPoint.y - mCoverBorderWidth,
      mDiscPoint.x + mDiscBitmap.getWidth() + mCoverBorderWidth, mDiscPoint.y +
          mDiscBitmap.getHeight() + mCoverBorderWidth);
  mCoverBorder.draw(canvas);
  // 3.繪制黑膠
  // 設(shè)置旋轉(zhuǎn)中心和旋轉(zhuǎn)角度,setRotate和preTranslate順序很重要
  mDiscMatrix.setRotate(mDiscRotation, mDiscCenterPoint.x, mDiscCenterPoint.y);
  // 設(shè)置圖片起始坐標(biāo)
  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坐標(biāo)
  float centerY = getHeight() / 2 + mTextSize / 2 + mAnimOffset;
 
  // 無(wú)歌詞文件
  if (!hasLrc()) {
    float centerX = (getWidth() - mCurrentPaint.measureText(label)) / 2;
    canvas.drawText(label, centerX, centerY, mCurrentPaint);
    return;
  }
 
  // 畫(huà)當(dāng)前行
  String currStr = mLrcTexts.get(mCurrentLine);
  float currX = (getWidth() - mCurrentPaint.measureText(currStr)) / 2;
  canvas.drawText(currStr, currX, centerY, mCurrentPaint);
 
  // 畫(huà)當(dāng)前行上面的
  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);
  }
 
  // 畫(huà)當(dāng)前行下面的
  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 開(kāi)源在線音樂(lè)播放器的資料整理,后續(xù)繼續(xù)補(bǔ)充相關(guān)資料,謝謝大家對(duì)本站的支持!

相關(guān)文章

最新評(píng)論