动画结束后如何执行另一个动作? - Java
How can I implement another action after the animation has ended? - Java
有人能帮忙吗?
================================================ ===
我这样试过:
Animation zoom, zoom_out;
zoomAnimation();
private void zoomAnimation() {
zoom= AnimationUtils.loadAnimation(this,R.anim.fast_zoomin);
avatar.startAnimation(zoom);
//question
if (zoom.hasEnded()){
zoomoutAnimation();
}
//question
}
private void zoomoutAnimation() {
zoom_out= AnimationUtils.loadAnimation(this,R.anim.fast_zoomout);
avatar.startAnimation(zoom_out);
}
我不确定我是否正确理解了问题。
但我认为你只需要添加一个模块。当动画结束时,对象仍然存在,所以你可以用一个intent-filter连接一个动作。
希望能帮到你
我这样做是为了在动画开始时,经过的秒数与动画持续的秒数完全相同,之后另一个动作将开始(Handler 方法的 C 帮助)。
private void zoomAnimation() {
zoom = AnimationUtils.loadAnimation(this,R.anim.fast_zoomin);
zoom_out = AnimationUtils.loadAnimation(this,R.anim.fast_zoomout);
avatar.startAnimation(zoom);
if (!zoom.hasStarted()){
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
avatar.startAnimation(zoom_out);
}
}, 1500); //seconds after which another action will start when
//condition that the first one started
}
}
有人能帮忙吗? ================================================ === 我这样试过:
Animation zoom, zoom_out;
zoomAnimation();
private void zoomAnimation() {
zoom= AnimationUtils.loadAnimation(this,R.anim.fast_zoomin);
avatar.startAnimation(zoom);
//question
if (zoom.hasEnded()){
zoomoutAnimation();
}
//question
}
private void zoomoutAnimation() {
zoom_out= AnimationUtils.loadAnimation(this,R.anim.fast_zoomout);
avatar.startAnimation(zoom_out);
}
我不确定我是否正确理解了问题。 但我认为你只需要添加一个模块。当动画结束时,对象仍然存在,所以你可以用一个intent-filter连接一个动作。 希望能帮到你
我这样做是为了在动画开始时,经过的秒数与动画持续的秒数完全相同,之后另一个动作将开始(Handler 方法的 C 帮助)。
private void zoomAnimation() {
zoom = AnimationUtils.loadAnimation(this,R.anim.fast_zoomin);
zoom_out = AnimationUtils.loadAnimation(this,R.anim.fast_zoomout);
avatar.startAnimation(zoom);
if (!zoom.hasStarted()){
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
avatar.startAnimation(zoom_out);
}
}, 1500); //seconds after which another action will start when
//condition that the first one started
}
}