Android:差异操作后不显示路径
您好,我是Android dev的新手,在第一次尝试时,我面临一个pbm 我有一个“球”沿着一条路径。 这部分代码正常(球沿着路径)。 但在我改变路径后,它不再显示 路径似乎是正常的,因为“球”沿着正确的路径。 但是我看不到 下面是代码的摘要Android:差异操作后不显示路径,android,path,Android,Path,您好,我是Android dev的新手,在第一次尝试时,我面临一个pbm 我有一个“球”沿着一条路径。 这部分代码正常(球沿着路径)。 但在我改变路径后,它不再显示 路径似乎是正常的,因为“球”沿着正确的路径。 但是我看不到 下面是代码的摘要 void init() { paint = new Paint(); paint.setAntiAlias(true); paint.setStrokeWidth(1f); paint.setColor(Color.WHI
void init() {
paint = new Paint();
paint.setAntiAlias(true);
paint.setStrokeWidth(1f);
paint.setColor(Color.WHITE);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeJoin(Paint.Join.ROUND);
paint.setTextSize(40);
pathBall = new Path();
pathBall.moveTo(0, 0);
pathBall.lineTo(300, 0);
pathBall.lineTo(300, 300);
pathBall.lineTo(0, 300);
pathBall.close();
measure = new PathMeasure(pathBall, true);
length = measure.getLength();
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawPath(pathBall, paint);
canvas.drawCircle(matrix[0], matrix[1], 5, paint);
}
void addPath() {
Path path = new Path();
path.moveTo(50, 0);
path.lineTo(50, 100);
path.lineTo(100, 100);
path.lineTo(100, 0);
path.close();
Region region1 = new Region();
region1.setPath(pathBall, clip);
Region region2 = new Region();
region2.setPath(path, clip);
region1.op(region2, Op.DIFFERENCE);
pathBall = region1.getBoundaryPath();
measure.setPath(pathBall, true);
length = measure.getLength();
}
在一个循环中,我将执行以下操作来重新调整球的位置:
while (keepDrawing) {
pos += 5;
if (pos > length) {
pos = (int)(pos - length);
addPath(); // To change path when 1 turn is done by the ball
}
measure.getPosTan(pos, matrix, null);
postInvalidate();
try {
Thread.sleep(20);
} catch (InterruptedException e) {
// ...
}
}
我不明白为什么我的路径是正确的,但不再显示。
有人有主意吗?我终于找到了解决办法。 我不明白为什么,但现在它起作用了。 我只是在路径球中添加了一个close():
pathBall = region1.getBoundaryPath();
pathBall.close();