Zaimplementowałem animowany pierścień rysunkowy, rozpoczynając od zamiatania pod kątem od 0 do 360 z powodzeniem. Jednak gdy ogon pierścienia styka się z głową pod kątem 360 °, cały rysunek znika.Dziwne zachowanie przy rysowaniu pierścienia przy użyciu Path.arcTo() w Androidzie
To jest mój kod na ringu w 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);
i jest to wynik,
zawiadomienie tutaj, że mogę ustawić sweepAngle do -359 tuż zanim zacznie ona koło. Jednak jeśli zmienię zamiatanie na -360. Wytwarza ten wynik.
Znika !! Ktoś wie, jak rozwiązać ten problem, pomóż mi?
Dzięki.
PS. Nie chcę używać drawArc()
, ponieważ chcę zrobić dziurę w pierścieniu. Z numerem drawArc()
mój przycisk zniknie.
Chyba tak .... to jedynym sposobem możemy zrobić, to użyć innego rysunku dla sweepAngel = 360. Tak jak @Kevin powiedział – SaintTail
@SaintTail, to wskazuje na problem, ale nie mówi, jak go pokonać. Dlaczego to jest zaakceptowana odpowiedź? – azizbekian