- packagecom.jxs.app.gridview.utils;
- importandroid.os.Handler;
- importandroid.os.Message;
- importandroid.widget.TextView;
- /**
- *
- *@AuthorJiangxs
- *@Date2011-7-21上午12:06:24
- *@Des本类为跑马灯工具类只要提供给一个要显示的字符串,一个TextView,就可以在这个TextView中实现跑马灯。
- */
- publicclassMarquee{
- privatefinalintTEXT_OUT=4;
- privatefinalintTEXT_IN=5;
- privateStringtitleStr;//跑马灯字符串
- privateintplace=1;//replacecount
- privateTextViewtitleTextView;
- publicMarquee(StringtitleStr,TextViewtitleTextView){
- this.titleStr=titleStr;
- this.titleTextView=titleTextView;
- }
- privateHandlermyHandler=newHandler(){
- @Override
- publicvoidhandleMessage(Messagemsg){//重写的方法用于接收Handler消息
- super.handleMessage(msg);
- if(msg.what==TEXT_OUT){//跑马灯向外出来时
- titleTextView.setText(titleStr.substring(0,place));
- }elseif(msg.what==TEXT_IN){//跑马灯向里进去时
- titleTextView.setText(titleStr.substring(place,titleStr
- .length()));
- }
- }
- };
- publicvoidmenuThread(){
- newThread(){//该线程用于标题栏跑马灯的实现
- publicvoidrun(){
- booleancontrol=true;
- while(true){
- if(control){//出来时
- myHandler.sendEmptyMessage(TEXT_OUT);
- try{
- Thread.sleep(300);//睡觉300毫秒
- }catch(Exceptione){//捕获异常
- e.printStackTrace();//打印异常
- }
- if(place>=titleStr.length()){
- place=1;
- control=false;
- }else{
- place++;
- }
- }else{//进去
- myHandler.sendEmptyMessage(TEXT_IN);//发送Handler消息
- try{
- Thread.sleep(200);//睡觉300毫秒
- }catch(Exceptione){//捕获异常
- e.printStackTrace();//打印异常
- }
- if(place>=titleStr.length()){
- place=1;
- control=true;
- }else{
- place++;//将place加一
- }
- }
- }
- }
- }.start();
- }
- }