2013-07-12 32 views
0

我正在尋找在設定的持續時間後,在不同的TextViews 1之後開始相同的動畫。目前我有下面的代碼,但我覺得必須有更好的方法來做到這一點。在不同的元素上背靠背的Android動畫

 Animation anim = AnimationUtils.loadAnimation(this, R.anim.flyin); 
     play_now_but.setAnimation(anim); 

     Animation anim2 = AnimationUtils.loadAnimation(this, R.anim.flyin); 
     anim2.setStartOffset(250); 
     story_mode_but.setAnimation(anim2); 

     Animation anim3 = AnimationUtils.loadAnimation(this, R.anim.flyin); 
     anim3.setStartOffset(500); 
     create_puzzle_but.setAnimation(anim3); 

     Animation anim4 = AnimationUtils.loadAnimation(this, R.anim.flyin); 
     anim4.setStartOffset(750); 
     stats_but.setAnimation(anim4); 

     Animation anim5 = AnimationUtils.loadAnimation(this, R.anim.flyin); 
     anim5.setStartOffset(1000); 
     settings_but.setAnimation(anim5); 

     Animation anim6 = AnimationUtils.loadAnimation(this, R.anim.flyin); 
     anim6.setStartOffset(1250); 
     about_but.setAnimation(anim6); 

     anim.start(); 
     anim2.start(); 
     anim3.start(); 
     anim4.start(); 
     anim5.start(); 
     anim6.start(); 

回答

1

這沒有什麼錯,你所採取的方式是,但我會明確地開始下一個動畫時,前一個已完成:

Animation anim = AnimationUtils.loadAnimation(this, R.anim.flyin); 
play_now_but.setAnimation(anim); 

final Animation anim2 = AnimationUtils.loadAnimation(this, R.anim.flyin); 
story_mode_but.setAnimation(anim2); 

final Animation anim3 = AnimationUtils.loadAnimation(this, R.anim.flyin); 
create_puzzle_but.setAnimation(anim3); 

final Animation anim4 = AnimationUtils.loadAnimation(this, R.anim.flyin); 
stats_but.setAnimation(anim4); 

final Animation anim5 = AnimationUtils.loadAnimation(this, R.anim.flyin); 
settings_but.setAnimation(anim5); 

final Animation anim6 = AnimationUtils.loadAnimation(this, R.anim.flyin); 
about_but.setAnimation(anim6); 

anim.setAnimationListener(new AnimationListener() { 
    public onAnimationEnd(Animation animation) { 
     anim2.start(); 
    } 
}); 

anim2.setAnimationListener(new AnimationListener() { 
    public onAnimationEnd(Animation animation) { 
     anim3.start(); 
    } 
}); 
anim3.setAnimationListener(new AnimationListener() { 
    public onAnimationEnd(Animation animation) { 
     anim4.start(); 
    } 
}); 
anim4.setAnimationListener(new AnimationListener() { 
    public onAnimationEnd(Animation animation) { 
     anim5.start(); 
    } 
}); 
anim5.setAnimationListener(new AnimationListener() { 
    public onAnimationEnd(Animation animation) { 
     anim6.start(); 
    } 
}); 

anim.start(); 
+0

有使用也許沒有更簡單的方法一個for循環和數組?這個實現雖然在技術上是正確的,但看起來很浪費 –

+0

@MattStokes只要你將按鈕添加到數組中,你當然可以在數組的循環中做到這一點。 –