我正在尝试展示两种不同的动画。它适用于第一个。但是当我停止第一个动画并用我的第二个动画第二次调用setBackgroundResource()然后调用start()时,它只显示第一帧。 可以两次调用setBackgroundResource()来设置不同的动画吗?
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
ImageView imgView= (ImageView) findViewById(R.id.imgView);
imgView.setBackgroundResource(R.anim.animation1);
AnimationDrawable frameAnimation = (AnimationDrawable) imgView
.getBackground();
frameAnimation.setCallback(imgView);
frameAnimation.start();
//Schedule the timer
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
showAnimation2();
}
}, 20000);
}//if hasFocus
}
/**
* Show second animation
*/
public void showAnimation2(){
ImageView imgView= (ImageView) findViewById(R.id.imgView);
AnimationDrawable frameAnimation = (AnimationDrawable) imgView
.getBackground();
// stop first animation
frameAnimation.stop();
imgView.setBackgroundResource(R.anim.animation2);
frameAnimation.setCallback(imgView);
//start second animation
frameAnimation.start();
// here I see the first frame of second animation only
}
我也尝试过使用setVisible(...),但它没有帮助
答案 0 :(得分:0)
我通过使用两个ImageView并在它们之间切换来解决了这个问题。我使用setVisibility()方法用第一个动画隐藏一个视图并显示第二个视图。