package com.androiddemo; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.os.Handler; import android.os.Message; import android.os.Handler.Callback; import android.util.AttributeSet; import android.widget.TextView; public class AlwaysMarqueeTextView extends TextView { Paint paint; Handler handler; int offset; public AlwaysMarqueeTextView(Context context, AttributeSet attrs) { super(context, attrs); paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setColor(0xFFFFFF00); paint.setTextSize(50); handler = new Handler(callback); handler.sendEmptyMessageDelayed(1000, 10); } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub String text = getText().toString(); canvas.drawText(text, offset, paint.getTextSize(), paint); if (--offset < -textWidth(text)) offset = getWidth(); } int textWidth(String text) { return (int) paint.measureText(text); } Callback callback = new Callback() { @Override public boolean handleMessage(Message msg) { // TODO Auto-generated method stub invalidate(); handler.removeMessages(1000); handler.sendEmptyMessageDelayed(1000, 10); return false; } }; }
本文链接:https://www.it72.com/3669.htm