叶子自律成长营

时光如影随形,直到我们了解生命

2019-02-24  本文已影响28人  Eren丶耶格尔

日结| Day26

时光就像是魔法,抖落那些旧时光,吹散那些沉闷的年华。相信一切都已经过去。迎接我们的是爱和茂盛的阳光

早起

6点50准时起床,阅读《偷影子的人》

运动

俯卧撑:3组20个,哑铃:3组10个,深蹲:3组10个
打拳

阅读

读完《偷影子的人》

学习

《自定义控件》第七章 贝济埃曲线


示例图

具体代码如下:

public class NormalGestureTrackView extends View {

    private Paint paint;
    
    Path path = new Path();
    // 起点位置
    private float preX, preY;
    // 终点位置
    private float endX, endY;

    public NormalGestureTrackView(Context context) {
        super(context);
    }

    public NormalGestureTrackView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);

        paint = new Paint(Paint.ANTI_ALIAS_FLAG);
        paint.setColor(Color.BLACK);
        paint.setStrokeWidth(5);
        paint.setStyle(Paint.Style.STROKE);
    }

    public NormalGestureTrackView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                // 返回 true 表示当前控件消费了下按动作,之后的其他动作也会继续传递到当前控件中
                path.moveTo(event.getX(), event.getY());
                preX = event.getX();
                preY = event.getY();
                return true;
            case MotionEvent.ACTION_MOVE:
                endX = (preX + event.getX()) / 2;
                endY = (preY + event.getY()) / 2;
                path.quadTo(preX, preY, endX, endY);
                preX = event.getX();
                preY = event.getY();
                invalidate();
                break;
            default:
                break;
        }
        return super.onTouchEvent(event);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawColor(Color.WHITE);
        canvas.drawPath(path, paint);
    }
}
上一篇下一篇

猜你喜欢

热点阅读