Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 比較完整的android MP3 LRC歌詞滾動高亮顯示(附源碼)

比較完整的android MP3 LRC歌詞滾動高亮顯示(附源碼)

編輯:關於Android編程

1.以前的滾動只是安行來刷新,現在不是按行來滾動了,其實就是在一定時間內整體往上移動,比如說在1S內刷新10次,由於認得肉眼看起來像是滾動。

關鍵代碼如下:
復制代碼 代碼如下:
        float plus = currentDunringTime == 0 ? 30
                : 30
                        + (((float) currentTime - (float) sentenctTime) / (float) currentDunringTime)
                        * (float) 30;
        // 向上滾動 這個是根據歌詞的時間長短來滾動,整體上移
        canvas.translate(0, -plus);

plus就是每次移動的大小,它就是根據歌詞所持續的時間來計算的,時間越長,plus的值就越小。具體的看代碼了。

下面就是獲取歌詞的信息:
復制代碼 代碼如下:
 public void updateIndex(long time) {
  this.currentTime = time;
  // 歌詞序號
  index = mLyric.getNowSentenceIndex(time);
  if (index != -1) {
   Sentence sen = Sentencelist.get(index);
   sentenctTime = sen.getFromTime();
   currentDunringTime = sen.getDuring();
  }
 }

以下就是跟新線程:
復制代碼 代碼如下:
 class UIUpdateThread implements Runnable {
  long time = 100; // 滾動速度
  public void run() {
   while (mp.isPlaying()) {
    lyricView.updateIndex(mp.getCurrentPosition());
    mHandler.post(mUpdateResults);
    try {
     Thread.sleep(time);
    } catch (InterruptedException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  }
 }

project鏈接:點擊下載

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved