Androidオープンソースオンライン音楽プレーヤー


カバー図: 

概要
  • 波尼音楽はオープンソースのAndroidオンライン音楽プレーヤーです。
  • ローカル音楽とオンライン音楽を再生する
  • オンライン音楽ランキング、例えば、熱歌ランキング、新曲ランキングなどの
  • .クラウドミュージックを彷彿とさせる黒のレコードのジャケット
  • 歌詞表示、自動検索歌詞
  • ナイトモード
  • タイミングオフ
  • 説明を更新します
    v 1.0
    First Release
    TODO
    オンライン音楽は無料で私の音楽リストに追加できます。
    オンライン音楽の自動キャッシュ
    音楽情報を編集する
    プロジェクト公開API
    オンライン音楽:Baiduの音楽
    天気データ:高徳地図
    オープンソース技術
    http-utils
    Android-Universal-Ingel-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開源オンライン音楽プレーヤーの資料整理です。引き続き関連資料を補充します。ありがとうございます。