Android文本视图的颜色滚动效果
来源:爱站网时间:2020-10-04编辑:网友分享
在浏览应用程序页面时,其实很多导航栏的背景色和textview文本随着页面上下滑动而逐渐改变,这种效果非常多,我开始觉得很神奇,今天爱站技术频道小编就为大家简单介绍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); } } }
以上就是爱站技术频道小编介绍的Android文本视图的颜色滚动效果,其实对于很多非专业人士来说,想要详细深入了解并不容易,js.aizhan.com就是一个很好的平台哦。