У меня есть ImageButton
в android, который вращается при нажатии. Проблема заключается в том, что он не заканчивает вращение, когда пользователь удаляет его и переходит к новому действию на следующей строке. Я пробовал Thread.sleep(..)
и wait(..)
, но положил RotateAnimation(..)
вместе с этими фактически спит перед началом анимации.RotateAnimation не ждет, пока кнопка начнет вращаться перед запуском. Активность
мне нужна анимация на самом деле закончить, а затем приступить к startActivity(new Intent(..))
Вот код
amazingPicsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
amazingPicsSound = createRandButSound();
amazingPicsSound.start();
rotateAnimation(v);
startActivity(new Intent("com.jasfiddle.AmazingInterface.AMAZINGPICS"));
}
});
}
/** function that produces rotation animation on the View v.
* Could be applied to button, ImageView, ImageButton, etc.
*/
public void rotateAnimation(View v){
// Create an animation instance
Animation an = new RotateAnimation(30, 360, v.getWidth()/2, v.getHeight()/2);
// Set the animation's parameters
an.setDuration(20); // duration in ms
an.setRepeatCount(10); // -1 = infinite repeated
// an.setRepeatMode(Animation.REVERSE); // reverses each repeat
an.setFillAfter(true); // keep rotation after animation
v.setAnimation(an);
// Apply animation to the View
}