標籤:tin etl post ons nbsp attr 重複 .net idt
原文:
http://blog.csdn.net/xu_fu/article/details/24484019
import android.content.Context;import android.graphics.Canvas;import android.graphics.LinearGradient;import android.graphics.Matrix;import android.graphics.Paint;import android.graphics.Shader;import android.util.AttributeSet;import android.widget.TextView;public class ShineTextView extends TextView { private LinearGradient mLinearGradient; private Matrix mGradientMatrix; private Paint mPaint; private int mViewWidth = 0; private int mTranslate = 0; private boolean mAnimating = true; public ShineTextView(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(); // 建立LinearGradient對象 // 起始點座標(-mViewWidth, 0) 終點座標(0,0) // 第一個,第二個參數表示漸層起點 可以設定起點終點在對角等任意位置 // 第三個,第四個參數表示漸層終點 // 第五個參數表示漸層顏色 // 第六個參數可以為空白,表示座標,值為0-1,如果這是空的,顏色均勻分布,沿梯度線。 // 第七個表示平鋪方式 // CLAMP重複最後一個顏色至最後 // MIRROR重複著色的映像水平或垂直方向已鏡像方式填充會有翻轉效果 // REPEAT重複著色的映像水平或垂直方向 mLinearGradient = new LinearGradient( -mViewWidth, 0, 0, 0, new int[] { 0xFF0288DA, 0xFFFFFFFF, 0xFF0288DA }, new float[] { 0, 0.5f, 1 }, Shader.TileMode.CLAMP); mPaint.setShader(mLinearGradient); mGradientMatrix = new Matrix(); } } } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); if (mAnimating && mGradientMatrix != null) { mTranslate += mViewWidth / 10; if (mTranslate > 2 * mViewWidth) { mTranslate = -mViewWidth; } mGradientMatrix.setTranslate(mTranslate, 0); mLinearGradient.setLocalMatrix(mGradientMatrix); postInvalidateDelayed(50); } } }
Android閃閃發光字型效果