我想在切换到新活动之前在图像上执行动画。我还想确保在新活动开始之前动画完全完成。下面是我用来完成任务的代码。
public boolean onTouch(View view, MotionEvent event) {
Animation shake = AnimationUtils.loadAnimation(ViewReadingActivity.this, R.anim.shake);
imgAries.startAnimation(shake);
Intent intent = new Intent(ViewReadingActivity.this, ShowHoroActivity.class);
startActivity(intent);
return true;
}
这个问题是动画在呈现新活动之前没有运行完成,动画将从它离开的地方继续运行。有没有更好的方法来实现这一目标?
答案 0 :(得分:7)
在这里使用你可以拥有动画列表器
shake.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation arg0) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation arg0) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation arg0) {
Intent intent = new Intent(ViewReadingActivity.this, ShowHoroActivity.class);
startActivity(intent);
}
});
答案 1 :(得分:1)
这样做: 1. animation.setAnimationListener(),实现方法 2. onanimationend方法,在代码中写入以启动新活动
迟到了:(答案 2 :(得分:1)
动画侦听器已经包含名为onAnimationEnd的方法@override on your imgAries动画听众
onAnimationEnd(Animation anim){
//Start you Activity here using Intent
Intent i=new Intent(this,//Your next Activity);
startActivity(i);
}
它...现在你可以去动画结束的下一个活动... Thks