Ich habe einen animierten Zeichnungsring implementiert, indem Sie erfolgreich im Winkel von 0 bis 360 fegen. Wenn jedoch das Ende des Rings seinen Kopf im 360-Grad-Winkel trifft, verschwinden alle Zeichen.Seltsames Verhalten beim Zeichnen eines Rings mit Path.arcTo() in Android
Dies ist mein Code für den 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);
und das ist das Ergebnis,
Hinweis hier, dass ich sweepAngle nur auf -359 gesetzt, bevor es Kreis wird. Allerdings, wenn ich sweepAngle zu -360 ändern. Es erzeugt dieses Ergebnis.
Es verschwindet !! Wer weiß, wie das zu lösen, bitte helfen Sie mir?
Danke.
PS. Ich möchte nicht drawArc()
verwenden, weil ich ein Loch in den Ring machen möchte. Mit drawArc()
ist mein Knopf weg.
Ich denke, so .... dann der einzige Weg, wir können tun, ist eine andere Zeichnung für SweepAngel = 360. Wie @Kevin sagte – SaintTail
@SaintTail, dies weist auf das Problem, aber nicht sagen, wie man es überwinden. Wie kommt es, dass diese Antwort akzeptiert wird? – azizbekian