闪动的文字效果(渲染)

来源:互联网 发布:算法导论第四版百度云 编辑:程序博客网 时间:2024/05/08 22:13
/** * Created by Administrator on 2015/12/15. */public class CustomeTextView extends TextView {    private int mViewWidth;    private Paint mPaint1;    private Paint mPaint2;    private TextPaint mPaint;    private LinearGradient mLinearGradient;    private Matrix mGradientMaxtix;    private int mTranslate;    public CustomeTextView(Context context) {        super(context);    }    public CustomeTextView(Context context, AttributeSet attrs) {        super(context, attrs);//        mPaint1 = new Paint();//        mPaint1.setColor(getResources().getColor(android.R.color.holo_blue_light));//        mPaint1.setStyle(Paint.Style.FILL);//        mPaint2 = new Paint();//        mPaint2.setColor(Color.YELLOW);//        mPaint2.setStyle(Paint.Style.FILL);        Log.e("dd ", "CustomeTextView");    }    @Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);        Log.e("dd ", "onDraw");        if(mGradientMaxtix!=null){            mTranslate +=mViewWidth/5;            if(mTranslate>2*mViewWidth){                mTranslate=-mViewWidth;            }            mGradientMaxtix.setTranslate(mTranslate,0);            mLinearGradient.setLocalMatrix(mGradientMaxtix);            postInvalidateDelayed(100);        }    }    @Override    protected void onSizeChanged(int w, int h, int oldw, int oldh) {        super.onSizeChanged(w, h, oldw, oldh);        Log.e("dd ","dddddd");        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);                mGradientMaxtix = new Matrix();            }        }    }    //    @Override//    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {////        super.onMeasure(widthMeasureSpec, heightMeasureSpec);//        setMeasuredDimension(measureWidth(widthMeasureSpec), measureHeight(heightMeasureSpec));//////    }////    private int measureWidth(int measureSpec) {//        int result = 0;//        int specMode = MeasureSpec.getMode(measureSpec);//        int specSize = MeasureSpec.getSize(measureSpec);//        if (specMode == MeasureSpec.EXACTLY) {//            result = specSize;//        } else {//            result = 200;//            if (specMode == MeasureSpec.AT_MOST) {//                result = Math.min(result, specSize);//            }//        }//        return result;////    }////    private int measureHeight(int measureSpec) {//        int result = 0;//        int specMode = MeasureSpec.getMode(measureSpec);//        int specSize = MeasureSpec.getSize(measureSpec);//        if (specMode == MeasureSpec.EXACTLY) {//            result = specSize;//        } else {//            result = 200;//            if (specMode == MeasureSpec.AT_MOST) {//                result = Math.min(result, specSize);//            }//        }//        return result;////    }}
0 0
原创粉丝点击