【问题标题】:Override Dialog dismiss() with new AlphaAnimation用新的 AlphaAnimation 覆盖 Dialog dismiss()
【发布时间】:2013-09-27 05:41:49
【问题描述】:

所以现在默认情况下,当对话框被 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();

【问题讨论】:

  • 你在哪里让视图淡出?我试图以视图的形式访问整个对话框,以便可以像这里一样将其淡出,但我只设法使对话框的内容淡出(没有覆盖背景和白色边框)。

标签: java android animation dialog dismiss


【解决方案1】:

扩展Dialog 类(建议您使用DialogFragment)并使用您自己的自定义Animation 覆盖其dismiss()

【讨论】:

  • 我这样做了,对话框只是卡在显示循环中,并且不会消失,但是它会闪烁动画,就像它正在解散一样,但随后又立即返回。我也不能使用DialogFragment,当我这样做时它不允许我使用findViewById()
【解决方案2】:

你需要使用

dialog.getWindow().getAttributes().windowAnimations 标志覆盖进入和退出/关闭动画。

这篇博文很好地解释了如何覆盖动画: http://flowovertop.blogspot.in/2013/03/android-alert-dialog-with-animation.html

【讨论】:

    【解决方案3】:

    我认为您不需要覆盖 Dialog.dismiss()

    您只需在动画结束时根据需要为对话框设置动画, 关闭它。

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

    【讨论】:

    • 那我怎么调用dismissing来告诉它调用动画呢?
    • 想通了,你说得对,我会更新我的问题以提供更详细的解决方案。再次感谢
    猜你喜欢
    • 1970-01-01
    • 2022-11-20
    • 2021-04-25
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多