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