软件编程
位置:首页>> 软件编程>> Android编程>> Android Textview实现颜色渐变滚动效果

Android Textview实现颜色渐变滚动效果

作者:qq_29703975  发布时间:2023-08-28 05:30:08 

标签:Android,Textview,渐变

本文实例为大家分享了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);

}

}
}

来源:http://blog.csdn.net/qq_29703975/article/details/66973941

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com