所以现在默认情况下,当Dialog被dialog.dismiss();
如何将其覆盖为我自己的动画?
AlphaAnimation fadeOut = new AlphaAnimation(1, 0);
fadeOut.setDuration(600);
view.setAnimation(fadeOut);
view.startAnimation(fadeOut);
编辑:
感谢the answer bellow我能够弄清楚。而不是修改解雇,我做了动画然后解雇它。
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));
}
并称之为dialog.dismissHUD();
答案 0 :(得分:7)
我认为您不需要覆盖Dialog.dismiss()
您可以根据需要设置对话框的动画,并在动画结束时, 解雇它。
@Override
public void onAnimationEnd(Animation animation) {
dialog.dismiss();
}
答案 1 :(得分:6)
您需要使用
dialog.getWindow().getAttributes().windowAnimations
标记以覆盖输入和退出/关闭动画。
这篇博客文章解释了如何很好地覆盖动画: http://flowovertop.blogspot.in/2013/03/android-alert-dialog-with-animation.html
答案 2 :(得分:0)
扩展Dialog
课程(建议您使用DialogFragment
)并使用您自己的自定义dismiss()
覆盖其Animation
。