Работа с анимацией TranslateAnimation

269
07 марта 2017, 14:34

Здравствуйте, помогите пожалуйста.

Проблема заклчается в том, объект view, двигается по экрану благодаря TranslateAnimation, я на него повесил OnClickListener, a он не работает. Получается, что для программы, он находится всегда на одном месте, и когда нажимаешь на то пустое место, он естественно срабатывает. Можна ли что то сделать?

Answer 1

Если я вас правильно понял, то вот тут это обсуждали.

В ответе, который отмечен верным говорится

Да, это нормальное состояние, потому что анимации повторно меняют пиксели, но координаты остаются теми же

В ответе предлагается использовать layout() у view в конце анимации. Так делать нельзя, так как если, например, перевернуть устройство, то view будет там, где был с самого начала. В комментарие ниже об этом и говорится, в нем же предлагается использовать LayoutParams.

Вам надо чтобы слушатель работал когда анимация закончится или когда анимация работает? Если первое, то вам надо повесить на анимацию слушатель и в onAnimationEnd менять у view LayoutParams. Если второе, то скорее всего вам нужна циклическая смена LayoutParams, и причем в отдельном потоке.

Если у вас view перемещается в известное вам место (траектория прописана, она одна) то лучше в двух местах создать одинаковые view, и в конце анимации по очереди их делать невидимыми, Тоесть например кнопка сверху. Нужно, чтобы она была внизу. Вы нижнюю делаете невидимой, анимируете первую и когда она анимация закончится делаете невидимой первую, а вторую наоборот - видимой

Еще советую посмотреть в сторону ViewPropertyAnimator

READ ALSO
Аргументы метода [требует правки]

Аргументы метода [требует правки]

Двумерный массив состоит из String "X" и String "O"Я по нему пробегаюсь и ищу кол-во X и O

226
Слушатель в Android приложении

Слушатель в Android приложении

Здравствуйте, разрабатываю приложение, где есть кабинет пользователей со своими паролями, именами и временем открытия сменыНеобходимо по прохождению...

262
Обязательные поля в DTO

Обязательные поля в DTO

Возник такой вопросУ нас есть дто, у которого только одно поле

255
Доступ к внутреней памяти устройства Android?

Доступ к внутреней памяти устройства Android?

Всем приветВообщем, я пытаюсь в данный момент сделать что то типа файлового менеджера для Android в очень простом виде

237