Не правильно работает анимация
У меня есть анимация для кнопки
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:duration="70"
android:fromDegrees="-3"
android:toDegrees="3"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="4"
android:repeatMode="reverse"
android:interpolator="@android:anim/linear_interpolator" />
<translate
android:fromXDelta="-6"
android:toXDelta="6"
android:repeatCount="4"
android:repeatMode="reverse"
android:interpolator="@android:anim/linear_interpolator"
android:duration="70" />
</set>
В коде я ее запускаю
val AnimUtils = AnimationUtils.loadAnimation(activity, R.anim.btn_shake)
Handler().postDelayed({
button.startAnimation(AnimUtils)
}, 3000)
AnimUtils.setAnimationListener(object : Animation.AnimationListener {
override fun onAnimationRepeat(animation: Animation?) {}
override fun onAnimationEnd(animation: Animation?) {
Handler().postDelayed({
button.startAnimation(AnimUtils)
}, 5000)
}
override fun onAnimationStart(animation: Animation?) {}
})
Но я не уверен на сколько это правильный подход. Пытаюсь останавливать ее в onPause(), но она не останавливается.
override fun onPause() {
super.onPause()
AnimUtils.cancel()
}
Подскажите пожалуйста, как можно сделать по другому, чтобы после захода в приложение, через 3с отрабатывала анимация и затем повторялась каждые 5с и правильно останавливалась при onPause()?! Нужно чтобы после сворачивания приложения или при возврате с другого фрагмента, анимация отрабатывала так же 3с задержки, потом раз в 5с.