2012-10-05 4 views
1

Попытка добавить наложение справки в наше приложение. Этот оверлей является RelativeLayout с полупрозрачным фоном и содержит несколько TextView и несколько дочерних элементов ImageView. Теперь я хочу, чтобы каждый из TextView/ImageView исчезал один за другим.Android Анимация нескольких дочерних видов в серии

Я использую набор анимации затухания (определенный в XML) и вызывая .startAnimation() на каждом представлении в методеAnimationListener. Таким образом, когда первый просмотр завершен, я вызываю метод startAnimation на следующем представлении, чтобы быть увязшим. Я использую тот же объект Animation (animationFadeIn), что и аргумент startAnimation всех просмотров. Как так:

... 
Animation animationFadeIn = AnimationUtils.loadAnimation(this.context, R.anim.fadein); 
... 
AnimationListener animationInListener = new AnimationListener(){ 
    @Override 
    public void onAnimationEnd(Animation animation) { 
     animation_activity++; 
     switch(animation_activity) { 
     case SHOW_TEXT_DROP: 
      txtDrop.startAnimation(animationFadeIn); 
      break; 
     case SHOW_TEXT_SEND: 
      txtSend.startAnimation(animationFadeIn); 
      break; 
     case SHOW_IMAGE_TOUCH: 
      imgTouch.startAnimation(animationFadeIn); 
      break; 
     case SHOW_TEXT_DISABLE: 
      txtDisable.startAnimation(animationFadeIn); 
      break; 
     } 
    } 
}; 

Для замирания в анимации, я называюсь this tutorial

Теперь вот проблема:

  • Первого взгляд замирает в
  • Второго взгляда выцветает в, но первый вид снова затухает вместе с ним
  • То же самое продолжается до тех пор, пока все виды не будут затухающими

Кроме того, как добавить некоторую задержку перед следующим представлением fades-in setStartOffset?

UPDATE

Я заметил, что если я создать второй объект анимации на

animationFadeIn2 = AnimationUtils.loadAnimation(this.context, R.anim.fadein); 

, а затем использовать его для startAnimation другого элемента, то он не создает эту проблему. Итак, я полагаю, должно быть какое-то свойство, которое должно быть установлено на объекте Animation, чтобы избежать этого?

ответ

1

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

+0

Удачи вам в оптимизации? – CoDe

+0

здесь он идет ... :) http://stackoverflow.com/a/4112620/2624806 помочь очистить анимацию для первого вида. – CoDe

Смежные вопросы