介绍
在小米的开机动画和一些欢迎界面中, 我们经常看到这种闪闪发光的流光字体。看起来很炫酷,其实实现原理相当简单,我们只需要写自定义控件继承TextView,然后使用渲染器Gradient设置颜色渐变和Paint的setShadowLayer方法设置阴影,然后不断刷新改变位移即可。
实现
首先写一个shineTextView类继承自TextView.
public class ShineTextView extends TextView
{
// 线性渐变渲染
private LinearGradient mLinearGradient;
//环形渐变渲染
private RadialGradient mRadialGradient;
// 渲染矩阵
private Matrix mGradientMatrix;
// 画笔
private Paint mPaint;
private int mViewWidth = 0;
// 亮度位移距离
private int mTranslate = 0;
public ShineTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
在这段代码中 ,我们定义了两个颜色渲染器
// 线性渐变渲染
private LinearGradient mLinearGradient;