簡體   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