2016-07-27 7 views
1

私は、ポップアップウィンドウ内でビューをアニメーション化して、それを解除する必要があります。だから私は、アンドロイドでポップアップウィンドウを閉じる前に、popupwindowの内部でアニメーション表示する方法は?

penPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() { 
      @Override 
      public void onDismiss() { 

       new Handler().postDelayed(new Runnable() { 
        @Override 
        public void run() { 
         TranslateAnimation animateSlideUp = new TranslateAnimation(0,0,0, mImageViewLike.getHeight()); 
         animateSlideUp.setDuration(200); 
         animateSlideUp.setFillAfter(true); 
         mImageViewLike.startAnimation(animateSlideUp); 
         mImageViewLike.setVisibility(View.VISIBLE); 
        } 
       }, 200); 

      } 
     }); 

を以下のようにリスナーを解任内部ビューをアニメ化している。しかし、これはポップアップウィンドウを閉じる前に呼び出されていないポップアップウィンドウとsetOnDismissListenerを閉じる前に、ポップアップウィンドウ内のImageViewのをアニメーション化しません。あなたはpopupwindowを閉じる前に何らかのアクションを行うアイディアを教えてください。前もって感謝します。

+0

は、なぜあなたは200の遅延を入れたのですか? – Nisarg

+1

少し遅れてアニメーションを開始する必要があります。しかし、私の場合、コントロールは内部に入っていませんsetOnDismissListener @ Nisarg – Sangeetha

+0

@Sangeethaあなたはどんなクリックでそれらを却下していますか? –

答えて

1

これはあなたがそれを行う方法です。

1)2つの異なるアニメーションセットを作成します。

と言うと、popup_show.xmlpopup_hide.xmlとし、resフォルダ内に作成する必要があるあなたのanimフォルダに追加します。

2)今、内部値フォルダ、styles.xmlと呼ばれるXMLを作成して、それはこのようにこれらのアニメーションを追加

<style name="Animation"> 
    <item name="android:windowEnterAnimation">@anim/popup_show</item> 
    <item name="android:windowExitAnimation">@anim/popup_hide</item> 
</style> 

3)今

popup.setAnimationStyle(R.style.Animation); 

今すぐあなたのPopupWindowアニメーションにこのスタイルを設定ウィンドウの入力と終了を自動的に検出し、必要なアニメーションを提供します。

+0

ご返信ありがとうございます。私は、ポップアップウィンドウの内側に配置された画像をアニメートする必要があります。私はポップアップウィンドウをアニメートしたくありません。しかし、私の場合、ポップアップウィンドウを閉じている間は、リスナーは呼び出されません。私にアイデアを提案してもらえますか?なぜ却下リスナーが検出されないのですか? @ shridutt kothari – Sangeetha

+0

PopupWindow.OnDismissListenerは、PopupWindow.OnDismissの後に画像をアニメーション化しようとしているときに、ポップアップが解除された後に何かしたいときに便利です。 –

+0

大丈夫です。ポップアップウィンドウを閉じる前にアニメーションをするにはどうすればいいですか?それを達成する方法はありますか? @ shridutt kothari – Sangeetha

2

アニメーションを開始する場合はon popup dismiss、次にアニメーションはどこですか?

逆の方法で行う必要があります。

animationを起動

、いつanimation endその後、dismissdialog.

 TranslateAnimation animateSlideUp = new TranslateAnimation(0,0,0, mImageViewLike.getHeight()); 
     animateSlideUp.setDuration(200); 
     animateSlideUp.setFillAfter(true); 
     mImageViewLike.startAnimation(animateSlideUp); 
     animateSlideUp.setAnimationListener(new Animation.AnimationListener() { 
      @Override 
      public void onAnimationStart(Animation animation) { 

      } 

      @Override 
      public void onAnimationEnd(Animation animation) { 
       penPopupWindow.dismiss(); 
      } 

      @Override 
      public void onAnimationRepeat(Animation animation) { 

      } 
     }); 
+0

あなたの提案をありがとう。自分のコードにアニメーションリスナーを追加します。アニメーションが終了した後でポップアップウィンドウを閉じたくない。 @ Sohail Zahid – Sangeetha

+0

@Sangeethaあなたのニーズに合わせてコードをコメントすることができます。 –

+0

@Sangeetha投稿が役に立ったらマークを付けて投票してください。幸いコーディング –

関連する問題