android实现文本不用聚焦走马灯效果

Home / Android MrLee 2015-7-6 3208

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

20150706173646

本文链接:https://www.it72.com/3669.htm

推荐阅读
最新回复 (0)
返回