Проблема бесконечного цикла - PullRequest
0 голосов
/ 17 августа 2011

Я пытаюсь заставить мою анимацию вращаться, пока пользователь не нажмет на вид. Я настроил анимацию на вращение один раз, и я хочу, чтобы она продолжала работать в каком-то цикле вместо использования .clearAnimation, чтобы анимация не просто останавливалась на полпути цикла при нажатии. Код, который я придумал, очевидно, не будет работать, но я могу думать о том, как это сделать!

while(keepSpinning){

    turntable = (ImageView)findViewById(R.id.deck1);     

    RotateAnimation r ; // = new RotateAnimation(ROTATE_FROM, ROTATE_TO);
    r = new RotateAnimation(ROTATE_FROM, ROTATE_TO, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
    r.setDuration(5000);
    r.setRepeatCount(0); 

    turntable.startAnimation(r);
    turntable.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View arg0, MotionEvent arg1) {
            keepSpinning = false;
            return true;
        }
    });
}

1 Ответ

2 голосов
/ 17 августа 2011

Вместо цикла while(keepSpinning), регистрирует AnimationListener с RotateAnimation.RotateAnimation будет вызывать onAnimationRepeat () на слушателе для каждого цикла анимации, и вы можете отменить анимацию там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...