[英]Android RotateAnimation bug
I have a RotateAnimation
attached to an ImageButton
which upon click rotates it and using OnAnimationEnd
starts a new Activity. 我有一个
RotateAnimation
附加到一个ImageButton
上,单击它即可旋转它,并使用OnAnimationEnd
启动一个新的Activity。
Problem is its not working. 问题是它不起作用。 After I close my application and come back, I am inside the
new Activity(..)
and when I go back, then the animation executes. 关闭应用程序并返回后,我位于
new Activity(..)
,当我返回时,动画将执行。 I want the animation to happen and then start the new Activity. 我希望动画发生,然后开始新的活动。
For some reason, it was working absolutely fine before using the same code but I don't know, some trivial change may have affected it. 出于某种原因,在使用相同代码之前它绝对可以正常工作,但我不知道,一些琐碎的更改可能会影响它。
Here's the code 这是代码
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);
}
setAnimation
only sets the next animation to play on the View
. setAnimation
仅设置要在View
上播放的下一个动画。 To start an animation immediately, use startAnimation
要立即开始动画,请使用
startAnimation
In your case, use v.startAnimation(an);
在您的情况下,请使用
v.startAnimation(an);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.