Android--MediaPlayer音乐播放器歌词随时间高亮显示
2013-02-23 03:21
369 查看
package com.mrzhu.hightlight; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.style.ForegroundColorSpan; import android.widget.TextView; public class LRCHighLightActivity extends Activity { protected static final int SHOWHIGH = 0; private TextView tvShowLrcHighLight; private int start = 0; private int end = 1; private boolean flag = true; private String content = "爱你变习惯不再稀罕\n" + "我们该冷静谈一谈\n" + "你说你喜欢一点点浪漫\n" + "却把跟随我的脚步放慢\n" + "没有你分享分担\n" + "我的快乐悲伤\n" + "心情天天天天纷乱\n" + "我一再试探\n" + "你一再隐瞒\n" + "是谁改变爱情原来的模样\n" + "有一种预感爱就要离岸\n" + "所有回忆却慢慢碎成片断\n" + "不能尽欢爱总是苦短\n" + "我只想要你最后的答案\n" + "有一种预感想挽回太难\n" + "对你还有无可救药的期盼\n" + "我坐立难安望眼欲穿\n" + "我会永远守在灯火阑珊的地方"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tvShowLrcHighLight = (TextView) findViewById(R.id.tvLRCHighLight); new Thread(new Runnable(){ public void run() { while(flag){ try { if(end < content.length()){ start++; end++; Bundle b = new Bundle(); b.putInt("start", start); b.putInt("end", end); Message msg = handler.obtainMessage(SHOWHIGH, b); handler.sendMessage(msg); }else{ flag = false; } Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } } } }).start(); } private Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) { switch(msg.what){ case SHOWHIGH: Bundle b = (Bundle) msg.obj; int start = b.getInt("start"); int end = b.getInt("end"); SpannableStringBuilder ssb = new SpannableStringBuilder(content); ssb.setSpan(new ForegroundColorSpan(Color.YELLOW), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); tvShowLrcHighLight.setText(ssb); break; } }; }; }
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/tvLRCHighLight" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0.24" android:gravity="center" android:text="@string/hello" android:textSize="20sp" /> </LinearLayout>
相关文章推荐
- Android 音乐播放器歌词列表式同步显示功能源码
- 一个算是比较完整的android MP3 LRC歌词滚动高亮显示
- Android 音乐播放器实现歌词显示
- Android中音乐播放器实现歌词同步显示
- LyricView是一个强大而灵活的自定义视图,可以在Android的音乐播放器中显示歌词
- android7.1.1开发过程中出现部分音乐播放器(酷狗,QQ音乐,酷我音乐)歌词不能长久显示在桌面
- 比较完整的android MP3 LRC歌词滚动高亮显示(附源码)
- 原生js实现音乐播放器功能,可以实时显示歌词并且高亮当前句
- Android 音乐播放器的开发教程(九) 歌词的显示----- 小达
- Android开发笔记之SeekBar 时间的显示 快进快退 Mediaplayer
- androidの当前时间动态显示
- android 音乐播放器关于歌词的处理
- 解决Android Toast重复显示等待时间过长的问题
- Android的时间显示
- Android中当前时间的动态显示
- android 时间,日期,各种不同显示的格式化工具
- android 显示时间格式24小时或12小时
- Android中Toast显示时间的自定义
- android 自定义Toast显示风格顶部弹出自定义时间
- Android/JAVA 针对时间戳转今天昨天前天,以及刚刚,几分钟的显示