2016-02-02 27 views
0

我正在做一個較老的項目,現在我卡住了一點點。AnimationListener方法內

我在一個佈局上有9個按鈕,他們都連接到他們的方法,他們調用他們的Intents。 這樣的.. button 1

public void button1_click(View view){ 
    Intent intent = new Intent(getApplicationContext(), Btn1.class); 
    startActivity(intent); 
} 

現在我一兩年後,我想實現一個簡單的動畫,其中的按鈕將做一些事情(最新動畫是不相關)。

現在在我的動畫方法 - startAnimation

private void startAnimation(final View view){ 
     final Animation wigle = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.zoom_in); 
     view.startAnimation(wigle); 
     wigle.setAnimationListener(new AnimationListener() { 

      @Override 
      public void onAnimationStart(Animation animation) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void onAnimationRepeat(Animation animation) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void onAnimationEnd(Animation animation) { 


      } 
     }); 

} 

我想等待動畫完成,然後開始我的意圖。

button 1用這種方法看起來像

public void button1_click(View view){ 
    startAnimation(view); 
    Intent intent = new Intent(getApplicationContext(), Btn1.class); 
    startActivity(intent); 
} 

但我的應用程序啓動動畫,然後開始Intent。 我應該執行哪些操作來不執行setAnimationListener所有按鈕。

回答

1

試試這個方法

private void startAnimation(final View view){ 
    final Animation wigle = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.zoom_in); 
    view.startAnimation(wigle); 
    wigle.setAnimationListener(new Animation.AnimationListener() { 
     @Override 
     public void onAnimationStart(Animation animation) {} 
     @Override 
     public void onAnimationRepeat(Animation animation) {} 
     @Override 
     public void onAnimationEnd(Animation animation) { 
      Intent intent; 
      switch (view.getId()){ 
       case R.id.btn1_id: 
        intent = new Intent(getApplicationContext(), Btn1.class); 
        startActivity(intent); 
        break; 
       case R.id.btn2_id: 
        intent = new Intent(getApplicationContext(), Btn2.class); 
        startActivity(intent); 
        break; 
       ....... 
       ............ 
       ...... 
      } 
     } 
    }); 

} 

使用方法

public void button1_click(View view){ 
    startAnimation(view); 
    disableAllButtons();  
} 
+0

我之前強硬的,但我認爲它仍然給很多代碼... 任何更簡單的方法? – FiN