LinearGradient线性渲染

孔子曰学而时习之  , 所以准备把一些用过的东西整理一下,既能锻炼自己,也可能会帮助到别人。因为是写的第一篇,所以可能文笔欠佳,废话不多说了,开始进入正题了。。

先来一张效果图(因为还不会自己弄动图,先找一个别人类似的表示一下)类似的效果就是有一道白色的光从左面闪到右面。。

《LinearGradient线性渲染》 效果模拟图

因为是属于自定义View的范畴,所以该View继承TextView。

一.首先要重写onSizeChanged() 方法。。代码如下图

《LinearGradient线性渲染》 onSizeChanged()

该处的代码主要为:

1.在获取控件的测量宽度后初始化画笔

2.初始化LinearGradient对象(具体参数下面说)

3.设置shader

4.初始化一个矩阵

二.就上面说到的LinearGradient 类来说,看源码是一个不错的选择,源码如下图

《LinearGradient线性渲染》 LinearGradient 类

这七个参数的的意思为

1.第一个,第二个参数表示渐变起点 可以设置起点终点在对角等任意位置

2.第三个,第四个参数表示渐变终点

3.第五个参数表示渐变颜色的数组

4.第六个参数可以为空,表示坐标,值为0-1 new float[] {0.25f, 0.5f, 0.75f, 1 },如果这是空的,颜色均匀分布,沿梯度线。

5.第七个表示平铺方式

① CLAMP重复最后一个颜色至最后

②MIRROR重复着色的图像水平或垂直方向已镜像方式填充会有翻转效果

③ REPEAT重复着色的图像水平或垂直方向

三.重写onDraw()方法,开始绘制,代码如下图

《LinearGradient线性渲染》 onDraw()

该处的代码主要为:

1.设置图像的平移,每次为控件宽度的1/5

2.每100ms 重新渲染一次

综上所述,就可以实现文字闪烁的效果了,想要切换颜色什么的可以自己定制了。。

开发之路任重道远,不断学习吧。。如有错误,欢迎指正。。

    原文作者:Guowei_aoj
    原文地址: https://www.jianshu.com/p/d1d75065c544
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞