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();
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();
}
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With