Додайте затримку до циклу Поки для завершення анімації

У SwipeSample, який я використовую, є XML-файл анімації, який переміщує макети зліва направо і т. Д. На кожній з анімацій встановлено довжину 800.

У мене є цикл while, який перевіряє, яку позицію користувач натискає, а потім цикл анімації для завершення циклу.

Що я знаходжу, це те, що якщо я в поточному положенні 1, і я хочу перейти до 0, анімація відмінно працює. Якщо я перебуваю в позиції 6 і хочу перейти до 0, макети, схоже, скочуються в один удар, цикл не дозволяє грати анімацію перед кожним проходом.

Чи можна додати затримку до циклу часу чи я повинен використовувати інший підхід?

Це код:

випадок R.id.EditTYellow:             System.out.println ("Текст жовтий натиснута");

        if(viewFlipper.getDisplayedChild()!=0 || viewFlipper.getDisplayedChild()> 0 ){
            do  
             { 
            viewFlipper.setInAnimation(slideRightIn);
            viewFlipper.setOutAnimation(slideRightOut);
            viewFlipper.showPrevious();
            //Delay need here to allow animation to complete
             } while (viewFlipper.getDisplayedChild()!=0);
        }                       
        //System.out.println("New Flipper "+viewFlipper.getDisplayedChild());
    break;

Я намагався додати Thread.sleep (800), але, здається, це не працює.

            try {
                Thread.sleep(800);
            } catch (InterruptedException e) {
               //TODO Auto-generated catch block
                e.printStackTrace();
            }
0

1 Відповіді

Threadsleep - ЗЛОЧЕННЯ. Використовуючи його для виправлення проблем синхронізації, великий немає ні. Анімації в Android можуть повідомити вас, коли вони закінчені ... через зворотний виклик AnimationListener. Ви надаєте слухачеві свою анімацію (slideRightIn, slideRightOut), і сама анімація повідомить вас, коли це буде зроблено, після чого ви зможете робити все, що завгодно.

slideRightIn.setAnimationListener(new AnimationListener() {
    public void onAnimationStart(Animation animation) {

        }

    public void onAnimationRepeat(Animation animation) {

    }

    public void onAnimationEnd(Animation animation) {
     //will be called when your animation is complete 
    }
});
1
додано
android_jobs_ua
android_jobs_ua
120 учасників

Публикуем вакансии и запросы на поиск работы по направлению Android. Здесь всё: full-time, part-time, remote и разовые подработки.

Mobile Dev Jobs UA
Mobile Dev Jobs UA
20 учасників

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin, RN и т.д.