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);
}
嘗試'v.startAnimation(一)的''而不是v.setAnimation(一);' – Rajesh
請張貼此作爲一個答案,從而我可以接受,upvote和謝謝你:D – jmishra