使用新的AlphaAnimation覆盖Dialog dismiss()

时间:2013-09-22 04:44:41

标签: java android animation dialog dismiss

所以现在默认情况下,当Dialog被dialog.dismiss();

解雇时,Dialog正在执行此缩放淡出效果

如何将其覆盖为我自己的动画?

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();

3 个答案:

答案 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