繁体   English   中英

我如何在android中使用canvas画一条线?

[英]How do i draw a line using canvas in android?

我想在android的ontouch事件中使用canvas画一条线。

这是我的代码:

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;
}

但是当我从鼠标按钮上移开手指时会出现该行,这意味着该行仅出现在touchesup操作中。 我想像徒手画一样画一条线。

只有在执行操作时才调用 drawPath。 所以如果你将你的 drawPath 复制到所有情况下,sit 应该可以工作

在您的MotionEvent.ACTION_UP事件处理代码中,您使用mCanvas.drawPath(mPath, mPaint); 画线。

在其他事件处理代码部分( MotionEvent.ACTION_MOVEMotionEvent.ACTION_DOWN )中添加这行代码,它也会更早地绘制这条线。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM