スライドショーアプリの作成を検討していて、
試作アプリを作っていたんだけど
画像がパッパッと切り替わるのではあんまりスライドショーっぽくないので
フェードイン/フェードアウトするにはどうしたらいいか考えてました。
画像の透明度を変化させればいいわけで
アルファ値をいじればいいのかなと思って
いろいろと調べてました。
ImageViewに対して、setAlpha という
アルファ値を設定するメソッドがあるんですが、
これとスレッドを合わせて徐々にフェードイン/フェードアウトするのかと思いつつ
なんかめんどくさいのでもうちょっと調査していたら・・・。
なんと、
TranslateAnimation
というクラスが用意されてるではないですか!
これを使えば自動的に透明度を変化させることができます。
具体的には
AlphaAnimation alpha = new AlphaAnimation(1, 0);
// 変化時間(ミリ秒)
alpha.setDuration(10000);
// 繰り返し回数1回
alpha.setInterpolator(new CycleInterpolator(1));
// アニメーションスタート
SlideView.startAnimation(alpha);
としたら、思い通りに動いてくれました。
(SlideViewはImageViewインスタンスです)
ほかにも、移動、回転、拡大縮小が
Animationクラスで実装できるようです。
すごいぞ、Android!