您的位置:首页 > 移动开发 > Android开发

Android自定义View之绘制闪动的文字

2016-05-21 15:49 381 查看

Android自定义View之绘制闪动的文字

效果图:(顺便安利下自己的群,方便交流创的,欢迎加入)



实现原理:



对Paint设置Shade,此处用的是LinearGradient,线性渐变,构造方法指定渐变的起始坐标和终止坐标,渐变的颜色,渐变的模式,然后在绘制的时候对偏移量进行递增并设置越界返回初始点,将这个偏移量设置到Matrix矩阵对象内,然后线性渐变设置Martix,此时绘制的渐变就进行了偏移产生了闪动的效果,然后在延迟绘制,如此就进行了往复的绘制偏移,即闪动效果.

参数:



所有的参数在onSizeChanged内初始化:(构造方法内初始化会失效,不知道为啥)

private void init() {
Paint mPaint = getPaint();
mPaint.setAntiAlias(true);
mPaint.setDither(true);
mPaint.setTextSize(40);
gradient = new LinearGradient(0, 0, getMeasuredWidth(), 0, Color.RED, Color.BLUE, Shader.TileMode.CLAMP);
mPaint.setShader(gradient);
matrix = new Matrix();
}


LInearGradient前几个参数都好理解,这里解释一下第三个参数

Shader.TileMode.CLAMP   重复最后一个颜色至最后
Shader.TileMode.MIRROR  重复着色的图像水平或垂直方向已镜像方式填充会有翻转效果
Shader.TileMode.REPEAT  重复着色的图像水平或垂直方向


接下来是onDrawa:

if (matrix != null) {
mTranslate += getMeasuredWidth() / 10;
if (mTranslate > getMeasuredWidth() * 2) {
mTranslate = -getMeasuredWidth();
} //当偏移超过两倍宽度是移到到最前
matrix.setTranslate(mTranslate, 0); //设置偏移
gradient.setLocalMatrix(matrix); //渐变开始偏移
postInvalidateDelayed(100); //刷新间隔
}


至此闪动的TextView就完成了~

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 自定义View