ImportAndroid.content.Context;ImportAndroid.graphics.Canvas;ImportAndroid.graphics.Paint;ImportAndroid.util.AttributeSet;ImportAndroid.util.Log;ImportAndroid.widget.TextView; Public classSlidetextviewextendsTextViewImplementsRunnable {Private intCurrentscrollx; Private BooleanIsstop =false; Private intTextWidth; Private BooleanIsmeasure =false; PublicSlidetextview (Context context) {Super(context); //TODO auto-generated Constructor stub } PublicSlidetextview (Context context, AttributeSet attrs) {Super(context, attrs); } PublicSlidetextview (context context, AttributeSet attrs,intDefstyle) { Super(context, attrs, Defstyle); } @Overrideprotected voidOnDraw (canvas canvas) {//TODO auto-generated Method Stub Super. OnDraw (canvas); if(!ismeasure) {gettextwidth (); Ismeasure=true; } log.d ("", "wmz:textwidth=" +textWidth); } Private voidGettextwidth () {Paint Paint= This. Getpaint (); String Str= This. GetText (). toString (); TextWidth= (int) Paint.measuretext (str); } @Override Public voidrun () {LOG.D ("", "wmz:run-currentscrollx=" +currentscrollx); CURRENTSCROLLX-= 1; ScrollTo (CURRENTSCROLLX,0); if(isstop) {return; } if(GETSCROLLX () <=-( This. GetWidth ())) {ScrollTo (textWidth,0); CURRENTSCROLLX=TextWidth; //return; } postdelayed ( This, 50); } Public voidStartscroll () {isstop=false; This. Removecallbacks ( This); Post ( This); } Public voidStopscroll () {isstop=true; } Public voidstartFor0 () {currentscrollx= 0; Startscroll (); }}
Slidetextview TextView = (Slidetextview) Findviewbyid (r.id.text_slide); Textview.settext ("123432432" ); Textview.startscroll ();
Cyclic scrolling TextView