Android Textview实现颜色渐变滚动效果
程序员文章站
2023-12-13 22:45:40
本文实例为大家分享了android颜色渐变滚动展示的具体代码,供大家参考,具体内容如下
public class flashtextview extends...
本文实例为大家分享了android颜色渐变滚动展示的具体代码,供大家参考,具体内容如下
public class flashtextview extends android.support.v7.widget.appcompattextview { private paint mpaint; private int mviewwidth; private lineargradient mlineargradient; private matrix mgradientmatrix; private int mtransalte; public flashtextview(context context, @nullable attributeset attrs) { super(context, attrs); } @override protected void onsizechanged(int w, int h, int oldw, int oldh) { super.onsizechanged(w, h, oldw, oldh); if (mviewwidth == 0) { mviewwidth = getmeasuredwidth(); if (mviewwidth > 0) { mpaint = getpaint();//获得当前绘制的paint对象 mlineargradient = new lineargradient( 0,//渐变起始点x坐标 0,//渐变起始点y坐标 mviewwidth,//渐变结束点x点坐标 0,//渐变结束点y坐标 new int[]{ color.blue, 0xffffffff, color.blue,color.red,color.yellow},//颜色的int数组 null,//相对位置的颜色数组,可为null, 若为null,可为null,颜色沿渐变线均匀分布 shader.tilemode.mirror);//平铺模式 mpaint.setshader(mlineargradient);//给这个paint设置linearfradient属性 mgradientmatrix = new matrix(); } } } @override protected void ondraw(canvas canvas) { super.ondraw(canvas); if (mgradientmatrix != null) { mtransalte += mviewwidth / 5; if (mtransalte > 2 * mviewwidth) { mtransalte -= mviewwidth; } mgradientmatrix.settranslate(mtransalte, 0); mlineargradient.setlocalmatrix(mgradientmatrix);//通过矩阵的方式不断平移产生渐变效果 postinvalidatedelayed(100); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。