Android Textview实现颜色渐变滚动效果
本文实例为大家分享了Android颜色渐变滚动展示的具体代码,供大家参考,具体内容如下
publicclassFlashTextViewextendsandroid.support.v7.widget.AppCompatTextView{
privatePaintmPaint;
privateintmViewWidth;
privateLinearGradientmLinearGradient;
privateMatrixmGradientMatrix;
privateintmTransalte;
publicFlashTextView(Contextcontext,@NullableAttributeSetattrs){
super(context,attrs);
}
@Override
protectedvoidonSizeChanged(intw,inth,intoldw,intoldh){
super.onSizeChanged(w,h,oldw,oldh);
if(mViewWidth==0){
mViewWidth=getMeasuredWidth();
if(mViewWidth>0){
mPaint=getPaint();//获得当前绘制的Paint对象
mLinearGradient=newLinearGradient(
0,//渐变起始点x坐标
0,//渐变起始点y坐标
mViewWidth,//渐变结束点x点坐标
0,//渐变结束点y坐标
newint[]{
Color.BLUE,0xffffffff,
Color.BLUE,Color.RED,Color.YELLOW},//颜色的int数组
null,//相对位置的颜色数组,可为null,若为null,可为null,颜色沿渐变线均匀分布
Shader.TileMode.MIRROR);//平铺模式
mPaint.setShader(mLinearGradient);//给这个paint设置linearFradient属性
mGradientMatrix=newMatrix();
}
}
}
@Override
protectedvoidonDraw(Canvascanvas){
super.onDraw(canvas);
if(mGradientMatrix!=null){
mTransalte+=mViewWidth/5;
if(mTransalte>2*mViewWidth){
mTransalte-=mViewWidth;
}
mGradientMatrix.setTranslate(mTransalte,0);
mLinearGradient.setLocalMatrix(mGradientMatrix);//通过矩阵的方式不断平移产生渐变效果
postInvalidateDelayed(100);
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
