Android Studio

时间:2016-01-13 16:40:36

标签: java android

我正在尝试通过点击时让它们摆动来为我的图像按钮添加动画效果。

 @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次(当然现在它不会加载我的其他活动)。

那么为什么摆动动画后的代码会影响它的运行方式呢?在继续之前,每条线都不能单独解决吗?我不明白加载不同的活动会如何影响我设置的动画。有什么想法吗?谢谢。

2 个答案:

答案 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);