http://www.jianshu.com/p/2d9f42dc0945 一阶 canvas.drawLine(start.x,start.y,end.x,end.y); 二阶 Path.quadTo @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); mPaint.setColor(Color.RED); //画笔颜色 mPaint.setStrokeWidth(10); //画笔宽度 mPaint.setStyle(Paint.Style.STROKE); mPath.reset(); //起点 mPath.moveTo(startPoint.x, startPoint.y); //mPath mPath.quadTo(assistPoint.x, assistPoint.y, endPoint.x, endPoint.y); //画path canvas.drawPath(mPath, mPaint); //画控制点 canvas.drawPoint(assistPoint.x, assistPoint.y, mPaint); //画线 canvas.drawLine(startPoint.x, startPoint.y, assistPoint.x, assistPoint.y, mPaint); canvas.drawLine(endPoint.x, endPoint.y, assistPoint.x, assistPoint.y, mPaint); } 三阶 Path.cubicTo @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); mPaint.setColor(Color.RED); //画笔颜色 mPaint.setStrokeWidth(10); //画笔宽度 mPaint.setStyle(Paint.Style.STROKE); mPath.reset(); //起点 mPath.moveTo(startPoint.x, startPoint.y); //mPath mPath.cubicTo(assistPoint1.x, assistPoint1.y, assistPoint2.x, assistPoint2.y, endPoint.x, endPoint.y); //画path canvas.drawPath(mPath, mPaint); //画控制点 canvas.drawPoint(assistPoint1.x, assistPoint1.y, mPaint); canvas.drawPoint(assistPoint2.x, assistPoint2.y, mPaint); //画线 canvas.drawLine(startPoint.x, startPoint.y, assistPoint1.x, assistPoint1.y, mPaint); canvas.drawLine(endPoint.x, endPoint.y, assistPoint2.x, assistPoint2.y, mPaint); canvas.drawLine(assistPoint1.x, assistPoint1.y, assistPoint2.x, assistPoint2.y, mPaint); }