继承自TextView的变色效果

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

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

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

核心代码如下:


drawText2方法如下:


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

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

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

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

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


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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容