如何使用Canvas绘制线条

时间:2012-11-30 07:16:36

标签: android android-canvas

我想在Android中使用Canvas绘制一条线。我使用ontoucheventtouchesmovetouchesuptouchesdown中累了这项任务。当我触摸结束鼠标按钮时出现该行。我想绘制像徒手画一样的线条。

这是我的代码,

switch (event.getAction()) 
{
case MotionEvent.ACTION_DOWN:
mPath.reset();
mPath.moveTo(x, y);
mX = x;
mY = y;
invalidate();
break;
case MotionEvent.ACTION_MOVE:
float dx = Math.abs(x - mX);
float dy = Math.abs(y - mY);
if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE)
    {
//mPath.quadTo(mX, mY, (x + mX)/2, (y + mY)/2);
mX = x;
mY = y;
}
invalidate();
break;
case MotionEvent.ACTION_UP:
mPath.lineTo(mX, mY);
mCanvas.drawPath(mPath, mPaint);
    mPath = new Path();
    paths.add(mPath);
mPath.reset();
invalidate();
break;
}

1 个答案:

答案 0 :(得分:0)

据我所知,drawPath()方法在ACTION_UP上执行。您需要在ACTION_MOVE中调用此方法,以便在您所做的每一个动作中绘制路径。为此,您必须将mPath.lineTo(mX, mY)复制到ACTION_MOVE当然。