2012-10-05 14 views
1

嘗試向我們的應用添加幫助疊加層。 這個疊加層是一個具有半透明背景的RelativeLayout,它包含幾個TextView和幾個ImageView子元素。現在,我希望每個TextView/ImageView都能一個接一個地淡入。Android在系列中動畫化多個子視圖

我使用淡入動畫集(在XML定義的),並呼籲在AnimationListener的OnAnimationEnd方法每個視圖.startAnimation()。所以,當第一個視圖淡入淡出時,我在下一個視圖中調用startAnimation方法淡入。我使用與所有視圖的startAnimation參數相同的Animation對象(animationFadeIn)。像這樣:

... 
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

現在,這裏的問題:

  • 首先查看變淡,在
  • 第二種觀點變淡式,但第一個視圖再次淡入以及隨着它一起
  • 一直持續到所有視圖都完成淡入

另外,如何在下一個視圖淡入之前添加一些延遲setStartOffset

UPDATE

我注意到,如果我創建由

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

第二個動畫對象,然後將其用於其他元素的startAnimation,那麼就不會產生這個問題。所以,我相信,必須有一些屬性設置在動畫對象上以避免這種情況發生?

回答

1

我終於繼續爲每個元素創建多個Animation對象。這解決了這個問題的時間。這可能不是正確/最佳的方法。

+0

任何運氣來優化它? – CoDe

+0

這裏是去... :) http://stackoverflow.com/a/4112620/2624806幫助清除第一視圖的動畫。 – CoDe