I have implemented an animated drawing ring by start sweeping at angle 0 to 360 successfully. However when the tail of the ring meets its head at 360 angle, all drawing is disappear.
This is my code for the ring in 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);
and this is the result,
notice here that i set sweepAngle to -359 just before it becomes circle. However if I change sweepAngle to -360. It produces this result.
It disappears!! Anyone know how to solve this please help me?
Thanks.
PS. I don't want to use drawArc()
because I want to make a hole inside the ring. With drawArc()
, my button will be gone.