受到Android 自定义控件玩转字体变色 打造炫酷ViewPager指示器的启发,决定用这个来仿制大多数音乐播放器的逐字染色效果,效果图如下:
关键点剖析一:逐字染色效果
关键代码如下:
public boolean clipRect(int left, int top, int right, int bottom)
这是Canvas的clipRect方法,这个方法可以理解为要在整个画布上剪切一块矩形来绘制内容,此矩形以外的内容全部不绘制,也就是形成了上图的断层效果。其中left,top,right,bottom分别是左,上,右,下四个端点,right也就是效果图上的断层位置。
实现染色效果的思路是,用clipRect将一行文字剪切成两部分,前半部分用绿色,后边部分用黑色,根据进度的变化