TextView增加跑马灯效果,相信很多朋友都用过了,但是如果使用android自带的跑马灯效果,还是有很多时候无法满足项目需求的。
比如系统自带的跑马灯效果需要获得焦点才能启动,如果当前页面中存在多个TextView都需要跑马灯效果,那就懵逼了,根本没法一起跑。
所以我决定自己基于TextView写一个。。。
废话不多说上代码
/**
* 设计思路就是通过UI线程轮询更新绘制Text的坐标,从而实现滚动
*/
public class MarqueeTextViewN extends TextView {
private Paint mPaint, Ppaint;
private Rect rect = new Rect();//本文本域的一个矩形对象
//以下是设置文本的参照值
private int mSize;//字体大小
private CharSequence mText;//要显示的文本
private int mColor;//文本颜色
private int mPColor;//padding边距的颜色,默认是白色
private int mPAlpha;//padding边距的透明度,默认不透明
private int mWidth,mHeight;//整个文本框的长宽
private float mTextX = 0;//被绘制文本的X轴起始位
private float mSpeed;//文字滚动的速度,默认为1,数值越大滚动越快
private int DEFAULT_COLOR_WHITE = ContextCompat.getColor(getContext(),R.color.white);
private Runnable runnable;
public MarqueeTextViewN(Context context) {
supe