Java 在android中绘制多条路径
我使用手指移动在android画布中绘制闭合路径。这是我的代码Java 在android中绘制多条路径,java,android,android-canvas,Java,Android,Android Canvas,我使用手指移动在android画布中绘制闭合路径。这是我的代码 switch (event.getAction()) { case MotionEvent.ACTION_DOWN: startPoint = new PointF(event.getX(), event.getY()); endPoint = new PointF();
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);
}
}
在每一次新的接触中,我都在创造一条新的道路。但当绘制新路径时,旧路径将被擦除。如何在画布上为每个路径绘制具有不同填充颜色的多个路径。当触发的事件是ACTION\u DOWN时,您将使用wallpath=new path()语句重置wallpath,放弃以前的值。这个新路径是在onDraw方法中绘制的唯一对象,每次需要重新绘制画布时都会调用它 考虑构建一个路径列表,当ACTION_DOWN是触发事件时,向列表中添加一个新路径,并在onDraw方法中绘制列表中的每个路径 详情: 在代码的其他地方,添加:
pathList = new ArrayList<Path>;
删除条件,这是不必要的
wallpath = new Path();
pathList.add(wallpath); // <-- Add this line.
endPoint.x = event.getX();
endPoint.y = event.getY();
wallpath.lineTo(endPoint.x, endPoint.y); // <-- Add this line.
for (Path path : pathList) {
canvas.drawPath(path, paint);
}