Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Override Dialog dismiss() with new AlphaAnimation

So right now by default the Dialog is doing this zoomin fade out effect when it gets dismissed with dialog.dismiss();

how can i override it to be my own Animation?

AlphaAnimation fadeOut = new AlphaAnimation(1, 0);
fadeOut.setDuration(600);
view.setAnimation(fadeOut);
view.startAnimation(fadeOut);

EDIT:

Thanks to the answer bellow i was able to figure it out. Instead of modifying the dismissal, i did the animation then dismissed it like so.

public void fadeOutHUD(View view) {
        AlphaAnimation fadeOut = new AlphaAnimation(1, 0);
        fadeOut.setDuration(800);
        view.setAnimation(fadeOut);
        view.startAnimation(fadeOut);
        fadeOut.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {

            }

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

            @Override
            public void onAnimationRepeat(Animation animation) {

            }
        });
    }

public void dismissHUD() {
        fadeOutHUD(findViewById(R.id.progressHud));
    }

And called it like so dialog.dismissHUD();

like image 441
NodeDad Avatar asked Sep 22 '13 04:09

NodeDad


2 Answers

I don't think you need to override the Dialog.dismiss()

You just animate the dialog as you wanted and at the end of animation, dismiss it.

@Override
public void onAnimationEnd(Animation animation) {
        dialog.dismiss();
}
like image 151
Archie.bpgc Avatar answered Sep 20 '22 22:09

Archie.bpgc


You will need to make use of

dialog.getWindow().getAttributes().windowAnimations flag to override the enter and exit/ dismiss animations.

This blog post explains to override the animation very well : http://flowovertop.blogspot.in/2013/03/android-alert-dialog-with-animation.html

like image 37
Abhishek Kumar Avatar answered Sep 21 '22 22:09

Abhishek Kumar