アニメーションの終了を待つ方法

前回の記事でフェードイン/フェードアウトは実装できたんですが
フェードアウトしたところで画像を切り替えようとしたんだけど
どうもうまくいきません・・・。

フェードアウトが終了した直後に
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

Androidアプリ講座オープン
副業大学にAndroidアプリ作成講座がオープン。
アフィリエイトやドロップシッピングも学べるお得な大学。

innc.japan-power.biz
カテゴリー: Android アプリ 関連 情報   パーマリンク