自定义view 三角形路径绘制

来源:互联网 发布:端口号80是什么意思 编辑:程序博客网 时间:2024/05/29 17:41
package com.sero.vk.signNow.ViewBezier;import android.animation.ValueAnimator;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.DashPathEffect;import android.graphics.Paint;import android.graphics.Path;import android.graphics.PathEffect;import android.graphics.PathMeasure;import android.util.AttributeSet;import android.view.View;import android.view.animation.LinearInterpolator;/** * Created by Administrator on 2017/3/1. */public class MyPathTracingView extends View implements View.OnClickListener {    private Paint paint;    private Path path;    private PathMeasure pathMeasure;    private float length;    private float mAnimationValue;    private PathEffect pathEffect;    public MyPathTracingView(Context context) {        super(context);    }    public MyPathTracingView(Context context, AttributeSet attrs) {        super(context, attrs);        paint = new Paint(Paint.ANTI_ALIAS_FLAG);        paint.setStrokeWidth(3);        paint.setStyle(Paint.Style.STROKE);        paint.setColor(Color.RED);        path = new Path();        path.moveTo(100, 100);        path.lineTo(100, 500);        path.lineTo(400, 300);        path.close();        pathMeasure = new PathMeasure();        pathMeasure.setPath(path,true);        length = pathMeasure.getLength();        ValueAnimator animator = ValueAnimator.ofFloat(1, 0);        animator.setInterpolator(new LinearInterpolator());        animator.setRepeatCount(ValueAnimator.INFINITE);        animator.setDuration(2000);        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {            @Override            public void onAnimationUpdate(ValueAnimator animation) {                mAnimationValue = (float) animation.getAnimatedValue();                pathEffect = new DashPathEffect(new float[]{length, length},                         length * mAnimationValue);                paint.setPathEffect(pathEffect);                invalidate();            }        });        animator.start();    }    public MyPathTracingView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }    @Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);        canvas.drawPath(path, paint);    }    @Override    public void onClick(View v) {    }}
0 0
原创粉丝点击