В дополнение к тому, что сказал Джейк Уортон, вы, вероятно, должны сделать следующее, чтобы анимация плавно остановилась и не прыгал вокруг , как только загрузка закончилась.
Во-первых,создайте новый логический (для всего класса):
private boolean isCurrentlyLoading;
Найдите метод, который начинает загрузку.Установите логическое значение true, когда действие начинает загружаться.
isCurrentlyLoading = true;
Найдите метод, который запускается после завершения загрузки.Вместо очистки анимации установите логическое значение false.
isCurrentlyLoading = false;
Установите AnimationListener для вашей анимации:
animationRotate.setAnimationListener(new AnimationListener() {
Затем, каждый раз, когда анимация выполнялась один раз, это означает, чтокогда ваш значок сделал один оборот, проверьте состояние загрузки, и если больше не загружается, анимация остановится.
@Override
public void onAnimationRepeat(Animation animation) {
if(!isCurrentlyLoading) {
refreshItem.getActionView().clearAnimation();
refreshItem.setActionView(null);
}
}
Таким образом, анимация может быть остановлена, только если она уже вращалась до конца и будетповториться в ближайшее время И это больше не загружается.
Это по крайней мере то, что я сделал, когда хотел реализовать идею Джейка.