指の動きを使ってAndroidキャンバスに閉じたパスを描いています。これがそのための私のコードです
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
startPoint = new PointF(event.getX(), event.getY());
endPoint = new PointF();
hotSpot = new HotSpots();
endPoint.x = event.getX();
endPoint.y = event.getY();
wallpath = new Path();
wallpath.moveTo(endPoint.x,endPoint.y);
break;
case MotionEvent.ACTION_MOVE:
PointF point = new PointF(event.getX(),event.getY());
endPoint.x = event.getX();
endPoint.y = event.getY();
invalidate();
break;
case MotionEvent.ACTION_UP:
endPoint.x = startPoint.x;//event.getX();
isFinished = true;
break;
default:
break;
}
@Override
protected void onDraw(Canvas canvas)
{
wallpath.lineTo(endPoint.x, endPoint.y);
canvas.drawPath(wallpath, paint);
if(isFinished)
{
wallpath.lineTo(endPoint.x, endPoint.y);
canvas.drawPath(wallpath, paint);
}
}
新しいタッチごとに、新しいパスを作成しています。しかし、新しいパスが描画されると、古いパスは消去されます。各パスに異なる塗りつぶし色を使用して、キャンバスに複数のパスを描画するにはどうすればよいですか。