私はdrawPathをsurfaceView
にする必要があるカメラアプリケーションに取り組んでいます。
surfaceView
は、カメラのプレビューに使用されます。画像をキャプチャした後、私はそれにパスを描く必要があります。すべてがうまくいっています。しかし、最初のパスを描画するときは大丈夫ですが、別のパスを描くときは前のパスを削除します。androidのSurfaceViewのDrawPath
ここに私が使用しているコードがあります。
// Class is extended from surfaceView and implements SurfaceHolder.Callback
@Override
protected void onDraw(Canvas canvas) {
Log.i(TAG, "onDraw");
canvas.drawPath(drawPath, drawPaint);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
float touchX = event.getX();
float touchY = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
drawCanvas = surfaceHolder.lockCanvas();
drawPath.moveTo(touchX, touchY);
break;
case MotionEvent.ACTION_MOVE:
drawPath.lineTo(touchX, touchY);
break;
case MotionEvent.ACTION_UP:
drawCanvas.drawPath(drawPath, drawPaint);
drawPath.reset();
surfaceHolder.unlockCanvasAndPost(drawCanvas);
break;
default:
return false;
}
invalidate();
return true;
}
// other code
問題:あなたはそれはあなたが私が私が間違ってやっている聞かせてくださいでき最初の1
を削除し、別のパスを描画しようとする場合は、パスを初めて描くことができます。
「私が間違っていることを教えてもらえますか?」何が間違っていますか? – Zoe
@ LunarWatcher私はすでに「最初のパスを描くために別のパスを描画しようとするとパスを初めて描画できます」と述べています。 –