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); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。