Применение анимации перевода и масштабирования последовательно - PullRequest
0 голосов
/ 20 декабря 2011

Я пытаюсь создать вид галереи для меню выбора уровня в моей игре. Три элемента расположены горизонтально и две кнопки: влево и вправо. Когда я нажимаю правую кнопку, все эти три элемента должны перемещаться влево, а при нажатии левой кнопки - элементы перемещаются вправо. Я обнаружил проблему при использовании атрибута анимации преобразования android:fillAfter: если он равен true, и я впервые нажимаю кнопку, элементы перемещаются туда, где они должны, и остаются там, как и ожидалось. Но при втором щелчке они начинают двигаться из своей начальной позиции, значит их действительные координаты не меняются после первого преобразования. Я что-то пропустил? Как мне достичь этой цели?

1 Ответ

0 голосов
/ 20 декабря 2011

android:fillAfter не меняет атрибуты вида. Это просто означает, что они рисуют на месте после завершения анимации, но их физические атрибуты одинаковы. Ваша анимация перевода, вероятно, анимируется относительно того, где они физически расположены. Также обратите внимание, что на самом деле представления не находятся в том месте, в котором вы их переместили, что означает, что если пользователь прикоснется к ним, касание не будет зарегистрировано. Они будут регистрироваться, если пользователь коснется того места, где он был раньше.

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

Возможное решение:

Слева направо:

TranslateAnimation (Animation.RELATIVE_TO_PARENT, 0.0, Animation.RELATIVE_TO_PARENT, 1.0, Animation.RELATIVE_TO_PARENT, 0.0, Animation.RELATIVE_TO_PARENT, 0.0);

Справа налево:

TranslateAnimation (Animation.RELATIVE_TO_PARENT, 1.0, Animation.RELATIVE_TO_PARENT, 0.0, Animation.RELATIVE_TO_PARENT, 0.0, Animation.RELATIVE_TO_PARENT, 0.0);

В этом случае я анимирую слева направо от 0% до 100% по отношению к родителю. При включенном fillAfter вид (видимо) останется. После этого я анимирую справа налево от 100% до 0% относительно родителя.

...