Sai*_*ail 9 android drawing android-custom-view
我已经成功实现了从角度0到360开始扫描的动画绘制环.然而,当环的尾部以360°角度与其头部相遇时,所有绘图都消失了.
这是我的戒指代码 onDraw()
float startAngle = 270;
float sweepAngle = -359;
paint.setColor(Color.DKGRAY);
paint.setShadowLayer(4, 2, 2, 0x80000000);
rectF.set(cenX - outerRadius, cenY - outerRadius, cenX + outerRadius,
cenY + outerRadius);
path.arcTo(rectF, startAngle, sweepAngle);
//canvas.drawArc(rectF, 0, 360, false, paint);
rectF.set(cenX - innerRadius, cenY - innerRadius, cenX + innerRadius,
cenY + innerRadius);
/*paint.reset();
paint.setAntiAlias(true);
paint.setColor(Color.WHITE);
canvas.drawArc(rectF, 0, 360, false, paint);*/
path.arcTo(rectF, startAngle + sweepAngle, -(sweepAngle));
canvas.drawPath(path, paint);
Run Code Online (Sandbox Code Playgroud)
这是结果,

请注意,我在它成为圆之前将sweepAngle设置为-359.但是,如果我将sweepAngle更改为-360.它产生了这个结果.

它消失了!! 有谁知道怎么解决这个请帮帮我?
谢谢.
PS.我不想用,drawArc()因为我想在戒指内打个洞.随着drawArc(),我的按钮将消失.
我已经很晚了,但我通过添加一个实心圆作为动画的最后一帧解决了这个问题(我使用的是AnimationDrawable,但在这种情况下想法是相同的)。最后一帧的所有绘制代码都相同,除了一行:
代替:
mPath.arcTo(rectF, startAngle, sweepAngle);
Run Code Online (Sandbox Code Playgroud)
类似的东西:
mPath.addCircle(cenX, cenY, innerRadius, Path.Direction.CCW);
Run Code Online (Sandbox Code Playgroud)