Android歌词秀设计思路(7)水到渠成(三)

2014-11-24 02:47:43 · 作者: · 浏览: 6
{

}

public void onLyricChanged(int lyric_index){
int lyricStart = 0;
if(lyric_index > 0){
lyricStart = mLyricEndList.get(lyric_index - 1);
}
int lyricEnd = mLyricEndList.get(lyric_index);
mLyricEdit.setSelection(lyricStart, lyricEnd);
mLyricEdit.invalidate();
Log.i(TAG, String.format("lyric= %d, setSelection(%d, %d)", lyric_index, lyricStart, lyricEnd));
}
在歌词读入时,将所有歌词练成一个长字符串,并记住每一句歌词在字符串中的位置。
在播放服务的状态发生变化时,更新按钮的状态。
在当前歌词发生变化时,根据前面保存的位置信息将当前歌词设置成高亮。
最后是跳到选定歌词的代码,还是一样的简单。
public void OnLyricClick(View v){
EditText et = (EditText)v;
int sel_start = et.getSelectionStart();
for(int i = 0; i < mLyricEndList.size(); ++i){
if(sel_start < mLyricEndList.get(i))
{
mProxy.seekToLyric(i);
break;
}
}
}
结合选中的位置,和保存的歌词位置信息,找到歌词的序号,让播放服务跳到那句就行了。
作者 “来自大连”