LinearGradient线性渲染

作者: Guow110 | 来源:发表于2017-08-08 23:01 被阅读30次

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

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

    效果模拟图

    因为是属于自定义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 重新渲染一次


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

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

    相关文章

      网友评论

        本文标题:LinearGradient线性渲染

        本文链接:https://www.haomeiwen.com/subject/rymxrxtx.html