Дадаць затрымку Хоць цыкл анімацыі для завяршэння

SwipeSample Я выкарыстоўваю мае XML-анімацыю, якая слізгае макеты для злева направа і г.д. Існуе працягласць устанаўліваецца да 800 на кожным з анімацыі.

У мяне ёсць час цыклу, які правярае, якую пазіцыю карыстальнік націскае на, а затым завесы анімацыі для завяршэння цыкла.

Тое, што я знаходжу ў тым, што, калі я знаходжуся ў бягучай пазіцыі 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 адказы

Thread.sleep ЗЛО. не выкарыстоўваючы яго для ліквідацыі праблем сінхранізацыі з'яўляецца вялікай няма няма. Анімацыі ў андроіда можа дазволіць вам ведаць, калі яны зрабілі ... праз 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
дададзена