Comportamiento extraño al dibujar un anillo usando Path.arcTo () en Android

He implementado un anillo de dibujo animado por arranque de barrido en el ángulo de 0 a 360 con éxito. Sin embargo, cuando la cola del anillo se encuentra con su cabeza en el ángulo 360, todo el dibujo es desaparecer.

Este es mi código para el anillo en 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); 

Y este es el resultado,

Introduzca aquí la descripción de la imagen

Observe aquí que establezco sweepAngle a -359 justo antes de que se convierta en círculo. Sin embargo, si cambio sweepAngle a -360. Produce este resultado.

Introduzca aquí la descripción de la imagen

¡Desaparece !! Alguien sabe cómo resolver esto por favor ayúdeme?

Gracias.

PD. No quiero usar drawArc() porque quiero hacer un agujero dentro del ring. Con drawArc() , mi botón se habrá ido.

2 Solutions collect form web for “Comportamiento extraño al dibujar un anillo usando Path.arcTo () en Android”

Supongo que android se mod 360 antes de realmente dibujar. Así que x - 360 === x y no dibujará nada!

Estoy muy atrasado con esto, pero lo solucioné agregando un círculo sólido como el último marco de la animación (estaba usando AnimationDrawable, pero la idea es la misma en este caso). Todo el código de draw era el mismo para ese último frame, excepto una línea:

reemplazar:

 mPath.arcTo(rectF, startAngle, sweepAngle); 

Con algo como:

 mPath.addCircle(cenX, cenY, innerRadius, Path.Direction.CCW); 
  • Dibujar la línea de trazo en una lona
  • Animar el ángulo de barrido de Android Ring Shape
  • Trayecto de bola de dibujo de Android
  • Cómo dibujar un círculo con animación en android con el tamaño del círculo basado en un valor
  • Método de dibujo de Android que se ejecuta lento
  • Patrón de pincel personalizado de Android / imagen
  • Android gira el mapa de bits alrededor del centro sin cambiar el tamaño
  • Cómo dibujar un ShapeDrawable más pequeño dentro de otro shapeDrawable programaticamente
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.