Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

Android--MediaPlayer音乐播放器歌词随时间高亮显示

$
0
0

 

 

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>


 

作者:zlQQhs 发表于2013-2-23 3:21:57 原文链接
阅读:101 评论:0 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>