2012-06-21 30 views
0

我有一個RotateAnimation附加到一個ImageButton它點擊旋轉它並使用OnAnimationEnd開始一個新的活動。Android RotateAnimation bug

問題是它不工作。在我關閉我的應用程序並返回後,我在new Activity(..)內,當我回去時,則執行動畫。我想要動畫發生,然後開始新的活動。

出於某種原因,它使用相同的代碼之前工作得很好,但我不知道,一些微不足道的變化可能會影響它。

下面的代碼

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);   
    setContentView(R.layout.menu); 
    ImageButton amazingPicsButton = (ImageButton) findViewById(R.id.amazingPics),    
    setViewOnClick(amazingPicsButton, new Intent("com.jasfiddle.AmazingInterface.AMAZINGPICS"));  
} 
/** 
* Generic OnClick setter method for giving various View objects a click listener 
* @param b 
* @param intent 
*/ 
private <B> void setViewOnClick(B b, final Intent intent){ 
    ((View) b).setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      amazingPicsSound = createRandButSound(); 
      amazingPicsSound.start(); 
      rotateAndNewActivity(v, intent); 

     } 
    });   

} 


/** function that produces rotation animation on the View v. 
* Could be applied to button, ImageView, ImageButton, etc. 
*/ 
private void rotateAndNewActivity(View v, final Intent intent){ 
    // Create an animation instance 
    Animation an = new RotateAnimation(30, 360, v.getWidth()/2, v.getHeight()/2); 
    an.setDuration(50);    // duration in ms 
    an.setRepeatCount(3);    // -1 = infinite repeate 

    /*we override the Animation an object to include the start of an new Activity 
    at the end of animation */ 
    an.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 
     } 

     //start the activity onAnimationEnd 
     @Override 
     public void onAnimationEnd(Animation animation) { 
      // TODO Auto-generated method stub 
      startActivity(intent); 
     }  
    }); 
    // Set the animation's parameters 


    v.setAnimation(an); 

} 
+1

嘗試'v.startAnimation(一)的''而不是v.setAnimation(一);' – Rajesh

+0

請張貼此作爲一個答案,從而我可以接受,upvote和謝謝你:D – jmishra

回答