Я считаю, что вы ищете repeatCount
r.setRepeatCount(0)
http://developer.android.com/reference/android/view/animation/Animation.html#setRepeatCount(int)
Из документации:
Устанавливает, сколько разанимация должна быть повторена.Если количество повторений равно 0, анимация никогда не повторяется.Если число повторений больше 0 или INFINITE, режим повторения будет принят во внимание.Число повторений по умолчанию равно 0.
Или вы говорите, что анимация продолжает вращаться для любого установленного значения duration
?(то есть, вы устанавливаете его на 5000, он вращается в течение 5 секунд, даже если он выходит за пределы «конца»).Что если вы установите это значение меньше, чем время, необходимое для вращения анимации?
В этом случае, вероятно, ваш LinearInterpolator
анимирует постоянную скорость изменения.Возможно, вы могли бы напечатать значение computeDurationHint()
, чтобы посмотреть, сможет ли приложение угадать, какова должна быть продолжительность.
PS Каковы ваши значения ROTATE_FROM
и ROTATE_TO
?