Android で画像をフェードする方法

スライドショーアプリの作成を検討していて、
試作アプリを作っていたんだけど
画像がパッパッと切り替わるのではあんまりスライドショーっぽくないので
フェードイン/フェードアウトするにはどうしたらいいか考えてました。

画像の透明度を変化させればいいわけで
アルファ値をいじればいいのかなと思って
いろいろと調べてました。

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!

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

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