Нажатие кнопки Я хотел бы сделать перемещение изображения вниз или вправо. Проблема, с которой я сталкиваюсь, заключается в том, что перемещение изображения происходит только один раз. В методе onClick() я просто вызываю один из моих методов перемещения. Вот методы перемещения.Как заставить анимацию снова работать после завершения?
private void moveLeftToRight() {
animation = new TranslateAnimation(0.0f, 200.0f, 0.0f, 0.0f);
animation.setDuration(1500); // animation duration
animation.setFillAfter(true);
iv1.startAnimation(animation); // start animation
}
private void moveUpToDown() {
animation = new TranslateAnimation(0.0f, 0.0f, 0.0f, 200.0f);
animation.setDuration(1500); // animation duration
animation.setFillAfter(true);
iv1.startAnimation(animation); // start animation
}
Я могу позвонить в одно из этих случаев впервые. После этого методы анимации не работают. Мне интересно, нужно ли мне сбросить или что-то еще. Есть идеи? Заранее спасибо.
Переданы ли координаты 'TranslateAnimation()' relative или нет? Если это не так, то почему. – MeetTitan
Они не относительны. Я просто экспериментирую с перемещением изображения вокруг экрана. Поэтому я просто перемещаю 200 пикселей вниз или вправо. Это проблема? Кажется, я понимаю, что вы говорите. Чтобы изображение продолжалось с того места, где оно было перемещено, я должен установить некоторые координаты, которые отображают текущую позицию изображения, чтобы он мог перемещаться снова. Верный? – portfoliobuilder
Я подозреваю, что в 'moveLeftToRight()' вы переходите к координатам {0, 200, 0, 0} (относительно {0,0}, а не к виду), что означает, что последовательные вызовы оживят представление к тому же самому пятну (таким образом, не двигаясь). Чтобы исправить это, получите координаты вида и добавьте свои значения, а затем передайте их на 'TranslateAnimation' – MeetTitan