1. 程式人生 > >Android自定義View繪製閃閃發光的文字

Android自定義View繪製閃閃發光的文字

如何實現類似網頁效果中閃閃發光的文字,通過自定義View可以實現這一炫酷效果

1.自定義View

public class FlickTextView extends TextView {


    private int mViewWidth;
    private Paint mPaint;
/**
     * 顏色漸變
     */
private LinearGradient mLinearGradient;
    private Matrix mGradientMatrix;
    private float mTranslate;
    public FlickTextView
(Context context) { super(context,null); } public FlickTextView(Context context, 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(); mLinearGradient = new LinearGradient(0,0,mViewWidth,0, new int[]{Color.BLUE,0XFFFFFFFF,Color.BLUE}, null, Shader.TileMode.CLAMP
); mPaint.setShader(mLinearGradient); mGradientMatrix = new Matrix(); } } } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); if(mGradientMatrix!=null){ mTranslate += mViewWidth/5; //當該控制元件渲染器的顏色變化正好移除螢幕時,從左側進入 if(mTranslate>2*mViewWidth){ mTranslate = - mViewWidth; } mGradientMatrix.setTranslate(mTranslate,0); mLinearGradient.setLocalMatrix(mGradientMatrix); //100ms 後繼續重新整理試圖,即呼叫onDraw()方法。 postInvalidateDelayed(100); } }
2.在佈局檔案中引用
<com.example.mdw.scrollertest.FlickTextView
android:layout_width="match_parent"
android:layout_height="200dp"
android:text="閃閃發光的文字"
android:textSize="40dp" />