2015-07-02 142 views
0

我只是在學習android動畫,想到玩它。 我已經創建了動畫,但我希望在動畫之間應該有延遲/等待。在android中播放動畫

這裏是代碼。我想要findViewById(R.id.app_logo).startAnimation(anim);之後它應該等待動畫完成。一旦完成findViewById(R.id.addTopic).startAnimation(anim);應該開始等等。

如果有任何可以指導我如何實現它,我會很樂意感謝

感謝。

+0

你可以用動畫聽衆或你也可以用動畫set..to戲動畫一個接一個 – Meenal

回答

0

這是簡單的解決方案,以您的需求:

final Animation anim0 = AnimationUtils.loadAnimation(this, R.anim.abc_slide_in_bottom); 
    final Animation anim1 = AnimationUtils.loadAnimation(this, R.anim.abc_slide_in_bottom); 
    final Animation anim2 = AnimationUtils.loadAnimation(this, R.anim.abc_slide_in_bottom); 
    final Animation anim3 = AnimationUtils.loadAnimation(this, R.anim.abc_slide_in_bottom); 
    Animation.AnimationListener animationListener = new Animation.AnimationListener() { 
     int count = 0; 
     @Override 
     public void onAnimationStart(Animation animation) { 
     } 
     @Override 
     public void onAnimationEnd(Animation animation) { 
      switch (count){ 
       case 0: 
        findViewById(R.id.addTopic).setVisibility(View.VISIBLE); 
        findViewById(R.id.addTopic).startAnimation(anim1); 
        break; 
       case 1: 
        findViewById(R.id.addDescription).setVisibility(View.VISIBLE); 
        findViewById(R.id.addDescription).startAnimation(anim2); 
        break; 
       case 2: 
        findViewById(R.id.addBtn).setVisibility(View.VISIBLE); 
        findViewById(R.id.addBtn).startAnimation(anim3); 
        break; 
      } 
      count++; 

     } 
     @Override 
     public void onAnimationRepeat(Animation animation) { 
     } 
    }; 
    anim1.setAnimationListener(animationListener); 
    anim2.setAnimationListener(animationListener); 
    anim3.setAnimationListener(animationListener); 
    findViewById(R.id.app_logo).startAnimation(anim0); 
    findViewById(R.id.addTopic).setVisibility(View.GONE); 
    findViewById(R.id.addDescription).setVisibility(View.GONE); 
    findViewById(R.id.addBtn).setVisibility(View.GONE); 
+0

感謝您的答案,但這不是我想要的。在這裏它顯示了我的所有小部件,然後他們一個接一個地動畫。我不想要那個兄弟。 我想要app_logo動畫,然後addTopic等。我想一個接一個地不全。 你能幫我另一個代碼..? 謝謝 – user3384581

+0

所以,只需定義他們的隱身GONE在xml或運行時,並添加上面每一個findViewById(R.id.the_view_the_now_you_want_to_show).setVisibility(View.VISIBLE); – yshahak

+0

作品像魅力。謝了,兄弟。 但我有疑問,爲什麼不能把findViewById(R.id.app_logo).startAnimation(anim);在switch語句中的case裏面? 我試圖把案件0:但我不會動畫。 爲什麼我們需要在onAnimationEnd之外啓動app_logo動畫.. ?? 抱歉吃過你的頭,但我只是學習並好奇地知道 – user3384581