Android Как добавить задержку для нескольких анимаций? - PullRequest
4 голосов
/ 18 февраля 2012

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

   public void setAnimation(){
        View view;
        String animation = prefs.getString("animations", "Scale");
        String interpolator = prefs.getString("interpolators", "Bounce");
        Animation animate = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.scale_in);
        for(int i=0; i<gridView.getChildCount(); i++){
            view = gridView.getChildAt(i);

            view.startAnimation(animate);
        }
    }

, поскольку есть цикл for, все дочерние анимации запускаются мгновенно. Я уже пробовал с:

Thread.sleep....
Handler...
animate.setStartTime...
animate.setStartOffset...

но все дочерние анимации запускаются мгновенно.

Я попробовал этот метод внутри цикла, и анимация не запустилась:

animate.setAnimationListener(new AnimationListener(){
    public void onAnimationEnd(Animation arg0) {
        view.startAnimation(animate);
    }

    public void onAnimationRepeat(Animation arg0) {
    }

    public void onAnimationStart(Animation arg0) {
    }

});

Спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 10 февраля 2016

Я использовал LayoutAnimationController , чтобы показать элементы в LinearLayout с эффектом анимации один за другим, используя следующий код.

     Animation fadeIn = AnimationUtils.loadAnimation(context, R.anim.anim_fade_in);
//lnrContactContainer is LinearLayout.
            AnimationSet set = new AnimationSet(true);
            set.addAnimation(fadeIn);
            set.setDuration(500);
            controller = new LayoutAnimationController(set, 1f);
            lnrContactContainer.setLayoutAnimation(controller);          
            lnrContactContainer.setVisibility(View.VISIBLE);

Но тот же подход не работает, когда яиспользуйте его для отображения анимации затухания, скрывая LinearLayout lnrContactContainer.setVisibility(View.GONE);

0 голосов
/ 24 марта 2012

Решением является создание GridLayoutAnimationController или LayoutAnimationController.

...