比較完整的android MP3 LRC歌詞滾動(dòng)高亮顯示(附源碼)
1.以前的滾動(dòng)只是安行來刷新,現(xiàn)在不是按行來滾動(dòng)了,其實(shí)就是在一定時(shí)間內(nèi)整體往上移動(dòng),比如說在1S內(nèi)刷新10次,由于認(rèn)得肉眼看起來像是滾動(dòng)。
關(guān)鍵代碼如下:
float plus = currentDunringTime == 0 ? 30
: 30
+ (((float) currentTime - (float) sentenctTime) / (float) currentDunringTime)
* (float) 30;
// 向上滾動(dòng) 這個(gè)是根據(jù)歌詞的時(shí)間長短來滾動(dòng),整體上移
canvas.translate(0, -plus);
plus就是每次移動(dòng)的大小,它就是根據(jù)歌詞所持續(xù)的時(shí)間來計(jì)算的,時(shí)間越長,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; // 滾動(dòng)速度
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鏈接:點(diǎn)擊下載
相關(guān)文章
Android-如何將RGB彩色圖轉(zhuǎn)換為灰度圖方法介紹
本文將詳細(xì)介紹Android-如何將RGB彩色圖轉(zhuǎn)換為灰度圖方法,需要了解更多的朋友可以參考下2012-11-11android仿Adapter實(shí)現(xiàn)自定義PagerAdapter方法示例
這篇文章主要給大家介紹了關(guān)于android仿Adapter實(shí)現(xiàn)自定義PagerAdapter的相關(guān)資料,文中詳細(xì)介紹了關(guān)于PagerAdapter的用法,對大家的理解和學(xué)習(xí)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11Android實(shí)現(xiàn)探探圖片滑動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)探探圖片滑動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06Android實(shí)現(xiàn)倒計(jì)時(shí)的方案梳理
這篇文章主要介紹了Android實(shí)現(xiàn)倒計(jì)時(shí)的方案梳理,下面文章圍繞主題展開Android倒計(jì)時(shí)方案,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08Android ViewPager實(shí)現(xiàn)頁面左右切換效果
這篇文章主要為大家詳細(xì)介紹了Android ViewPager實(shí)現(xiàn)頁面左右切換效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04Android 動(dòng)態(tài)改變SeekBar進(jìn)度條顏色與滑塊顏色的實(shí)例代碼
在上次android開發(fā)的項(xiàng)目中遇到個(gè)這樣的需求,要?jiǎng)討B(tài)改變seekbar進(jìn)度條顏色與滑塊顏色的需求,實(shí)現(xiàn)代碼也算比較簡單,對實(shí)現(xiàn)過程感興趣的朋友可以通過本文學(xué)習(xí)下2016-11-11Android中使用Kotlin實(shí)現(xiàn)一個(gè)簡單的登錄界面
Kotlin 是一種在 Java 虛擬機(jī)上運(yùn)行的靜態(tài)類型編程語言,被稱之為 Android 世界的Swift,由 JetBrains 設(shè)計(jì)開發(fā)并開源。接下來本文通過實(shí)例代碼給大家講解Android中使用Kotlin實(shí)現(xiàn)一個(gè)簡單的登錄界面,一起看看吧2017-09-09