package com.com.mr_wrong.Bezier; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; /** * Created by Mr_Wrong on 15/7/9. */ public class TestBezier extends View { private Paint mPaint; private Path mPath; private float mCtrX = 200, mCtrY = 200; public TestBezier(Context context) { super(context); init(); } public TestBezier(Context context, AttributeSet attrs) { super(context, attrs); init(); } public TestBezier(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } float dis; @Override public boolean onTouchEvent(MotionEvent event) { float downx, downy = 0; switch (event.getAction()) { case MotionEvent.ACTION_DOWN: downx = event.getX(); downy = event.getY(); break; case MotionEvent.ACTION_MOVE: dis = event.getY() - downy; invalidate(); break; case MotionEvent.ACTION_UP: mCtrY = 200; invalidate(); break; } return true; } private void init() { mPaint = new Paint(); mPaint.setAntiAlias(true); mPath = new Path(); } @Override protected void onDraw(Canvas canvas) { mPaint.setColor(Color.RED); mPath.moveTo(100, 100); mPath.quadTo(mCtrX, mCtrY+dis, 300, 100); canvas.drawPath(mPath, mPaint); } }