Ho implementato un anello di disegno animato dall'inizio spazzando con successo da 0 a 360. Tuttavia, quando la coda dell'anello incontra la testa a 360 gradi, tutto il disegno scompare.Comportamento strano nel disegnare un anello utilizzando Path.arcTo() in Android
Questo è il mio codice per l'anello 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);
e questo è il risultato,
preavviso qui che ho impostato sweepAngle a -359 poco prima che diventi cerchio. Tuttavia se cambio sweepAngle a -360. Produce questo risultato.
Scompare !! Qualcuno sa come risolvere questo per favore aiutami?
Grazie.
PS. Non voglio usare drawArc()
perché voglio fare un buco dentro l'anello. Con drawArc()
, il mio pulsante sarà sparito.
Credo di sì .... allora l'unico modo possiamo fare un altro disegno per sweepAngel = 360. Come @Kevin ha detto – SaintTail
@SaintTail, questo indica il problema, ma non spiega come superarlo. Come mai questa è una risposta accettata? – azizbekian