Перемещение изображения через разные координаты x, y - PullRequest
0 голосов
/ 11 января 2011

Я создал массив координат.Центр изображения должен двигаться через эти координаты.Я использовал TranslateAnimation для достижения этой цели.Но во время анимации изображение движется в двух последних координатах.Ниже мой код:

private void CreateAnimationAndRun() {
        // move to the different coordinates one by one
        for(int k=0; k<xpoints.length; k++) {
            if(k==0) {
            x1 = xstart;
                y1 = ystart;
            } else {
            x1 = xpoints[k-1];
            y1 = ypoints[k-1];
            }
            x2 = xpoints[k];
            y2 = ypoints[k];
            TranslateAnimation translateAnimation = new TranslateAnimation(x1, x2, y1, y2);
            translateAnimation.setDuration(1000);
            translateAnimation.setAnimationListener(anim_listener);
            imv1.startAnimation(translateAnimation);
        }
    }

Вышеуказанная функция была вызвана нажатием кнопки.

1 Ответ

0 голосов
/ 07 февраля 2011

У меня было всего несколько часов, чтобы воспроизвести анимацию Android самостоятельно, поэтому я надеюсь, что это не вводит в заблуждение.

Я думаю, что проблема в том, что ваш цикл перезаписывает анимацию при каждой итерации, так что при запуске все, что вы видите, это самая последняя анимация (между двумя последними точками).

Вместо этого анимации должны генерироваться с разным временем запуска. Из того, что я понимаю до сих пор, лучший способ сделать это - создать набор animationSet и использовать ваш цикл для загрузки анимаций, которые отличаются по времени запуска с помощью setStartOffset (). Затем по вашему клику вы можете просто запустить анимацию. Альтернативно, щелчок может создать их в цикле и использовать setStartTime (), чтобы заставить их играть в соответствующих точках.

...