Возникла проблема с показом второй анимации в том же ImageView.
Первая анимация показывается без проблем. А вторая, подставляемая в тот же самый ImageView, показывает только первый кадр. Возникает вопрос: можно ли вообще менять анимации, и если да, то как это делать правильно?
Пример безуспешного кода:
public void onWindowFocusChanged(boolean hasFocus) {<br/>
<br/>
super.onWindowFocusChanged(hasFocus);<br/>
<br/>
if (hasFocus) {<br/>
<br/>
ImageView imgView= (ImageView) findViewById(R.id.imgView);<br/>
<br/>
// первая анимация<br/>
<br/>
imgView.setBackgroundResource(R.anim.animation1);<br/>
AnimationDrawable frameAnimation = (AnimationDrawable) imgView<br/>
.getBackground();<br/>
<br/>
frameAnimation.setCallback(imgView);<br/>
frameAnimation.start();<br/>
<br/>
//Schedule the timer<br/>
<br/>
Timer timer = new Timer();<br/>
timer.schedule(new TimerTask() {<br/>
<br/>
@Override<br/>
public void run() {<br/>
// показываем вторую<br/>
showAnimation2();<br/>
}<br/>
}, 20000);<br/>
}//if hasFocus<br/>
<br/>
}<br/>
<br/>
/**<br/>
* Вторая анимация<br/>
*/ <br/>
public void showAnimation2(){<br/>
ImageView imgView= (ImageView) findViewById(R.id.imgView);<br/>
<br/>
AnimationDrawable frameAnimation = (AnimationDrawable) imgView<br/>
.getBackground();<br/>
<br/>
// stop first animation<br/>
frameAnimation.stop();<br/>
<br/>
imgView.setBackgroundResource(R.anim.animation2);<br/>
frameAnimation.setCallback(imgView);<br/>
<br/>
//start second animation<br/>
frameAnimation.start();<br/>
<br/>
// here I see the first frame of second animation only<br/>
}<br/>