继承自TextView的变色效果

原理是两只画笔,不同颜色,都在绘制。

当A笔画的时候,截取一部份,B同理,最后叠在一起,就显示了文字的变色效果。

此VIEW继承自TextView后,只需要重写onDraw方法,并且把onDraw里面的super去掉。

核心代码如下:


drawText2方法如下:


clipRect就是裁剪,可以看出,这里是只裁剪了左右,而没有管上下。

其中baseLine,基线的算法是确定的,当需要drawText的时候,都要算出基线

dx就是一个居中,将文字居中显示,算出左边的距离而以,容易理解。

save & restore 这里可以理解成图层! 一个 save & restore 之间,都相当于是一个图层。 最终是N个图层叠加显示出最终效果。

当然,如果需要有个渐变效果的话,就是需要不停的调用此方法:


invalidate就是不停的重绘,最终就是调用onDraw。 但不仅权是调用当前VIEW的draw,会把父控件也全部重新绘制一遍。

你可能感兴趣的:(继承自TextView的变色效果)