package View;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Shader;
import android.util.AttributeSet;
import android.widget.TextView;
/**
* Created by abc on 2017/3/27.
*/
public class TextViewRect extends TextView {
Paint mPaint1,mPaint2;
public TextViewRect(Context context) {
super(context);
}
public TextViewRect(Context context, AttributeSet attrs) {
super(context, attrs);
}
public TextViewRect(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public TextViewRect(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (matrix!=null){
mTranslate += mViewWidth/5;
if (mTranslate>2*mViewWidth){
mTranslate =- mViewWidth;
}
matrix.setTranslate(mTranslate,0);
mLineraGradient.setLocalMatrix(matrix);
postInvalidateDelayed(100);
}
}
int mTranslate;
int mViewWidth;
Matrix matrix;
LinearGradient mLineraGradient;
@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){
mPaint1 = getPaint();
mLineraGradient = new LinearGradient(0,0,mViewWidth,0,new int[]{Color.BLUE,0xffffff,Color.BLUE},null, Shader.TileMode.CLAMP);
mPaint1.setShader(mLineraGradient);
matrix = new Matrix();
}
}
}
}