Android - TranslateAnimations - PullRequest
       19

Android - TranslateAnimations

1 голос
/ 19 ноября 2011

Когда я пытаюсь применить анимацию перевода к ImageView, изображение просто полностью исчезает.Я не уверен, почему это произойдет, потому что я запустил этот код через отладчик eclipse, и значения для x_start и x_final кажутся правильными.

Любые идеи о том, почему это происходит или как я могу заставить мой TranslateAnimation работать?

    chargeButton.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            int x_cord = (int) event.getRawX();
            int y_cord = (int) event.getRawY();

            switch (event.getActionMasked()){
                case MotionEvent.ACTION_DOWN:
                    break;
                case MotionEvent.ACTION_MOVE:
                    chargeButton.setLayoutParams(setPosition(x_cord, false));
                    break;
                case MotionEvent.ACTION_UP:
                    int x_start = x_cord;
                    x_cord = 0;
                    slowMove(x_start, x_cord, false);
                    chargeButton.setLayoutParams(setPosition(x_cord, false));

                    break;
                default:
                    break;
            }
            return true;
        }
    });


}

public void slowMove(int x_start, int x_final, boolean pay)
{
    Animation transAnimation = new TranslateAnimation(x_start, x_final, 0, 0);
    transAnimation.setFillAfter(true);
    transAnimation.setDuration(1000);
    if (pay)
        payButton.startAnimation(transAnimation);
    else
    {
        chargeButton.clearAnimation();
        chargeButton.startAnimation(transAnimation);
    }
}

Еще немного фона, эта функция вызывается из onTouchListener под MotionEvent.ACTION_UP делом.

Я чувствую, что мне нужно использовать Animation.Relative_TO_SELF или что-то подобное для позиционирования.Тем не менее, я не уверен, как это сделать, когда у меня есть только абсолютное позиционирование ImageViews.

Любые идеи будут высоко оценены.

1 Ответ

1 голос
/ 30 апреля 2012

Не используйте параметры макета для перемещения ваших видов - это действительно не очень хорошая идея.Я шел по этому пути, и ничего хорошего из этого не вышло.

Подумайте над расширением View и настройте свой собственный вид, где вы можете полностью контролировать происходящее.

...