如题,效果就不多说了。简单写了一下。
源码如下:
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