您好,登錄后才能下訂單哦!
本文實例為大家分享了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); } } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。