我正在尝试通过点击时让它们摆动来为我的图像按钮添加动画效果。
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.buttonStart:
buttonStart.startAnimation(wobble);
Intent i;
i = new Intent(this, CityRendActivity.class);
startActivity(i);
break;
}
}
当我点击我的开始按钮时,它会慢慢开始摆动,但只会出现像来回摇动3次,并且比我在xml文件中定义的要慢很多。当我删除包含意图代码的行时,摆动工作完美,按钮快速抖动5次(当然现在它不会加载我的其他活动)。
那么为什么摆动动画后的代码会影响它的运行方式呢?在继续之前,每条线都不能单独解决吗?我不明白加载不同的活动会如何影响我设置的动画。有什么想法吗?谢谢。
答案 0 :(得分:2)
尝试为动画添加动画侦听器,onAnimationEnd()启动您的活动意图。
wobble.setAnimationListener(new AnimationListener(){
@Override
public void onAnimationStart(Animation animation){}
@Override
public void onAnimationRepeat(Animation animation){}
@Override
public void onAnimationEnd(Animation animation){
startActivity(new Intent(YourCurrentActivity.this, CityRendActivity.class)); // if the code is in Fragment, then replace YourCurrentActivity.this by getActivity()
}
});
答案 1 :(得分:0)
实际上在这段代码中。动画和开始新活动将同时执行。这将扰乱两者之间的动画。所以用动画时间延迟活动的开始。这样动画就会完成,然后你的Activity就会启动。这个工作对你来说。
new Handler().postDelayed(new Runnable(){
@Overide
void run(){
startActivity(new Intent(this, CityRendActivity.class));
}
},time_ofanimation);