您好,登錄后才能下訂單哦!
本文實例為大家分享了Android顏色漸變滾動展示的具體代碼,供大家參考,具體內(nèi)容如下
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();//獲得當(dāng)前繪制的Paint對象 mLinearGradient = new LinearGradient( 0,//漸變起始點x坐標(biāo) 0,//漸變起始點y坐標(biāo) mViewWidth,//漸變結(jié)束點x點坐標(biāo) 0,//漸變結(jié)束點y坐標(biāo) new int[]{ Color.BLUE, 0xffffffff, Color.BLUE,Color.RED,Color.YELLOW},//顏色的int數(shù)組 null,//相對位置的顏色數(shù)組,可為null, 若為null,可為null,顏色沿漸變線均勻分布 Shader.TileMode.MIRROR);//平鋪模式 mPaint.setShader(mLinearGradient);//給這個paint設(shè)置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);//通過矩陣的方式不斷平移產(chǎn)生漸變效果 postInvalidateDelayed(100); } } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。