孔子曰学而时习之 , 所以准备把一些用过的东西整理一下,既能锻炼自己,也可能会帮助到别人。因为是写的第一篇,所以可能文笔欠佳,废话不多说了,开始进入正题了。。
先来一张效果图(因为还不会自己弄动图,先找一个别人类似的表示一下)类似的效果就是有一道白色的光从左面闪到右面。。
效果模拟图因为是属于自定义View的范畴,所以该View继承TextView。
一.首先要重写onSizeChanged() 方法。。代码如下图
onSizeChanged()该处的代码主要为:
1.在获取控件的测量宽度后初始化画笔
2.初始化LinearGradient对象(具体参数下面说)
3.设置shader
4.初始化一个矩阵
二.就上面说到的LinearGradient 类来说,看源码是一个不错的选择,源码如下图
LinearGradient 类这七个参数的的意思为
1.第一个,第二个参数表示渐变起点 可以设置起点终点在对角等任意位置
2.第三个,第四个参数表示渐变终点
3.第五个参数表示渐变颜色的数组
4.第六个参数可以为空,表示坐标,值为0-1 new float[] {0.25f, 0.5f, 0.75f, 1 },如果这是空的,颜色均匀分布,沿梯度线。
5.第七个表示平铺方式
① CLAMP重复最后一个颜色至最后
②MIRROR重复着色的图像水平或垂直方向已镜像方式填充会有翻转效果
③ REPEAT重复着色的图像水平或垂直方向
三.重写onDraw()方法,开始绘制,代码如下图
onDraw()该处的代码主要为:
1.设置图像的平移,每次为控件宽度的1/5
2.每100ms 重新渲染一次
综上所述,就可以实现文字闪烁的效果了,想要切换颜色什么的可以自己定制了。。
开发之路任重道远,不断学习吧。。如有错误,欢迎指正。。
网友评论