ImageViewを2秒でフェードインして再び2秒でフェードアウトする計4秒のアニメーションを実装したいです。
いろいろなサイトを参考にしているのですがどうもうまくアニメーションが表示されません。
Alphaアニメーションを削除すると普通に表示されるのですが・・・。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
interpolatorを元にした解決法です。
lang
1Animation fadeIn = new AlphaAnimation(0, 1); 2fadeIn.setInterpolator(new DecelerateInterpolator()); 3fadeIn.setDuration(2000); 4 5Animation fadeOut = new AlphaAnimation(1, 0); 6fadeOut.setInterpolator(new AccelerateInterpolator()); 7fadeOut.setStartOffset(2000); 8fadeOut.setDuration(2000); 9 10AnimationSet animation = new AnimationSet(false); //falseに変更しましょう 11animation.addAnimation(fadeIn); 12animation.addAnimation(fadeOut); 13this.setAnimation(animation);
投稿2014/09/18 02:30
総合スコア66
0
ObjectAnimatorというクラスを使った方法もあります。大体こんな感じになります
以下のサイトを参考にしました。ご参考まで
http://techblog.yahoo.co.jp/programming/androidiphone/
lang
1final ImageView imageView = (ImageView)findViewById(R.id.image); // フェードインアウトさせたいImageView 2ObjectAnimator objectAnimator1 = ObjectAnimator.ofFloat( imageView, "alpha", 0f, 1f ); // フェードインアウトさせたいImageViewとどのアルファ値からどのアルファ値まで変化させたいか指定 3objectAnimator1.setDuration(2000); // 何秒かけるか指定(ミリ秒) 4objectAnimator1.addListener( new AnimatorListener() { 5 @Override 6 public void onAnimationStart(Animator arg0) {} 7 @Override 8 public void onAnimationRepeat(Animator arg0) {} 9 @Override 10 public void onAnimationEnd(Animator arg0) { // objectAnimator1で指定したアニメーションが終わった際に呼ばれるコールバック 11 ObjectAnimator objectAnimator2 = ObjectAnimator.ofFloat( imageView, "alpha", 1f, 0f ); 12 objectAnimator2.setDuration(2000); 13 objectAnimator2.start(); // また新たにImageViewのアルファ値を戻してアニメーションさせる 14 } 15 @Override 16 public void onAnimationCancel(Animator arg0) {} 17}); 18objectAnimator1.start();
投稿2014/09/27 04:04
総合スコア221
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。