estoy usando un RotateAnimation
para girar una imagen que estoy usando como una ruleta personalizada cíclica en Android. Aquí está mi archivo rotate_indefinitely.xml
, que coloqué en res/anim/
:Como hacer un giro de la imagen suave en Android?
<?xml version="1.0" encoding="UTF-8"?>
<rotate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="infinite"
android:duration="1200" />
Cuando aplico esto a mi ImageView
usando AndroidUtils.loadAnimation()
, funciona muy bien!
spinner.startAnimation(
AnimationUtils.loadAnimation(activity, R.anim.rotate_indefinitely));
El único problema es que la rotación de la imagen parece pausarse en la parte superior de cada ciclo.
En otras palabras, la imagen gira 360 grados, se detiene brevemente, y luego gira 360 grados de nuevo, etc.
Sospecho que el problema es que la animación está utilizando una interpolación por defecto como android:iterpolator="@android:anim/accelerate_interpolator"
(AccelerateInterpolator
), pero No sé cómo decirle que no interpole la animación.
Cómo puedo apagar la interpolación (si es ése el problema) para que mi ciclo de animación sin problemas?
Esto se debe a que el interpolador se deletreó incorrectamente (no "n"). No necesita hacer su propio – Kingpin
. He probado todos los interpoladores disponibles, incluido el lineal, y todavía tengo este pequeño "enganche" al comienzo de cada ciclo. –
Si su animación de rotación está dentro de un conjunto, la configuración del interpolador no parece funcionar. Hacer girar el elemento superior lo arregla – shalafi