在android下顯示歌詞的控件:OpenLRC
a lrc view for android
一個可以在android下顯示歌詞的控件可以設置歌詞字體大小,當前行歌詞的顏色、其他行歌詞的顏色、行間距等。
使用方法:
1、xml布局:
<org.load.openlrc.LrcView
android:id="@+id/lrc"
android:layout_marginTop="100dip"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
lrc:currentTextColor="@android:color/holo_orange_light"
lrc:normalTextColor="@android:color/white"
lrc:rows="5"
lrc:textSize="20sp"
lrc:dividerHeight="10dip" />
2、在activity中使用:
public class MainActivity extends Activity { private LrcView mLrc; private MediaPlayer mPlayer; private String mDir = Environment.getExternalStorageDirectory() + File.separator + "Download" + File.separator; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 歌曲路徑 String music = mDir + "1.mp3"; // 歌詞路徑 String lrc = mDir + "1.lrc"; mLrc = (LrcView) findViewById(R.id.lrc); // 設置背景圖片 // 可以選擇不設置 // 最好是在真個屏幕設置該圖片 // 那樣更好看 mLrc.setBackground(BitmapFactory.decodeFile(mDir + "1.png")); mPlayer = new MediaPlayer(); try { mPlayer.setDataSource(music); mPlayer.setOnPreparedListener(new PreparedListener()); mPlayer.prepareAsync(); // 設置lrc的路徑 mLrc.setLrcPath(lrc); } catch (Exception e) { e.printStackTrace(); } } private class PreparedListener implements OnPreparedListener { @Override public void onPrepared(MediaPlayer mp) { mPlayer.start(); new Thread(new Runnable() { @Override public void run() { // 當歌曲還在播放時 // 就一直調用changeCurrent方法 // 雖然一直調用, 但界面不會一直刷新 // 只有當唱到下一句時才刷新 while(mPlayer.isPlaying()) { // 調用changeCurrent方法, 參數是當前播放的位置 // LrcView會自動判斷需不需要下一行 mLrc.changeCurrent(mPlayer.getCurrentPosition()); // 當然這里還是要睡一會的啦 try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } }).start(); } } }
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!