前回の記事でフェードイン/フェードアウトは実装できたんですが
フェードアウトしたところで画像を切り替えようとしたんだけど
どうもうまくいきません・・・。
フェードアウトが終了した直後に
ImageViewの画像を切り替えようとしたんですが、
切り替わってからフェードアウトという動きになってしまいました。
どうにかアニメーションの終了を待つ方法はないかと探してみました。
具体的には、以下のようなソースコード。
// アニメーションインスタンスの作成
AlphaAnimation alpha1 = new AlphaAnimation(1, 0);
// 変化時間
alpha1.setDuration(1000);
// アニメーションスタート
SlideView.startAnimation(alpha1);
// 画像を切り替えるメソッド
setImage();
こうやると、画像が切り替わってからフェードアウトしてしまいます。
探してみたら、「onAnimationEnd」というのを見つけました。
どうやらアニメーションインスタンスをリスナーに登録し、
終了を検知するみたいですね。
んで、こうやってみたら上手くいきました。
// アニメーションインスタンスの作成
AlphaAnimation alpha1 = new AlphaAnimation(1, 0);
// 変化時間
alpha1.setDuration(1000);
// リスナーへ登録
alpha1.setAnimationListener(this);
// アニメーションスタート
SlideView.startAnimation(alpha1);
画像切り替えメソッドは、
onAnimationEnd内に記述します。
public void onAnimationEnd( Animation anime ){
// 画像を切り替えるメソッド
setImage();
}
しかしAndroidのアニメーションに関する資料は少ないですね・・・
一般書籍にもなかなか載っていません。
だれかレポートにしてくれたすごい助かるのにw