複数画像を使ったパラパラアニメを作るために使うAnimationDrawableですが、なかなかのクセモノです。
その1
Activityの起動と同時にアニメーションを開始したい場合は、onWindowFocusChangedでstartしてやらないと動きません。そう、onCreateやonResumeでstartしてもビクともしません。
これは、その時点ではAnimationDrawableが画面上に準備できてないからです。
その2
startしたらstopしましょう。そう、stopではなく描画の関係で止まったアニメーションを再開させようとstartを再度呼んでもビクともしません。 startの前にstopするようにしたらいいんじゃないっすかね。
その3
ActivityGroupなどを使っていると画面遷移で止まったりします。そう、この時はonWindowFocusChangedが呼ばれないためビクともしません。
これは、別スレッドを利用して回避できるようです。
onResumeで
runOnUiThread(new Runnable() { @Override public void run() { animation.start(); } });とかしてやると動きます。
注:どっかでstopしてね。
以上です。
0 件のコメント:
コメントを投稿