[英]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_MOVE
和MotionEvent.ACTION_DOWN
)中添加這行代碼,它也會更早地繪制這條線。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.