Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中关闭弹出窗口之前,如何在popupwindow中设置视图动画?_Android_Popupwindow - Fatal编程技术网

在android中关闭弹出窗口之前,如何在popupwindow中设置视图动画?

在android中关闭弹出窗口之前,如何在popupwindow中设置视图动画?,android,popupwindow,Android,Popupwindow,我想在关闭它之前,在弹出窗口中设置视图的动画。因此,我已经设置了下图中的视图的动画 penPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() { @Override public void onDismiss() { new Handler().postDelayed(new Runnable() {

我想在关闭它之前,在弹出窗口中设置视图的动画。因此,我已经设置了下图中的视图的动画

penPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
            @Override
            public void onDismiss() {

                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        TranslateAnimation animateSlideUp = new TranslateAnimation(0,0,0, mImageViewLike.getHeight());
                        animateSlideUp.setDuration(200);
                        animateSlideUp.setFillAfter(true);
                        mImageViewLike.startAnimation(animateSlideUp);
                        mImageViewLike.setVisibility(View.VISIBLE);
                    }
                }, 200);

            }
        });

但是在关闭弹出窗口之前,这不会在弹出窗口内设置imageview的动画,并且在关闭弹出窗口之前不会调用setOnDismissListener。在关闭弹出窗口之前,你能给我一个建议吗?提前谢谢。

这是你应该做的事情

1) 创建两组不同的动画

说,
popup\u show.xml
popup\u hide.xml
并将其添加到您的动画文件夹中,您必须在res文件夹中创建动画文件夹

2) 现在在values文件夹中创建一个名为
styles.xml
的xml,并将这些动画添加到其中,如下所示:

<style name="Animation">
    <item name="android:windowEnterAnimation">@anim/popup_show</item>
    <item name="android:windowExitAnimation">@anim/popup_hide</item>
</style>

现在,它会自动检测窗口的进入和退出,并提供所需的动画。

如果在弹出窗口中启动动画
,则在何处执行动画

你应该反其道而行之

启动
动画
并在
动画结束时
关闭
对话框。

        TranslateAnimation animateSlideUp = new TranslateAnimation(0,0,0, mImageViewLike.getHeight());
        animateSlideUp.setDuration(200);
        animateSlideUp.setFillAfter(true);
        mImageViewLike.startAnimation(animateSlideUp);
        animateSlideUp.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {

            }

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

            @Override
            public void onAnimationRepeat(Animation animation) {

            }
        });
关闭弹出窗口之前有什么动作吗

您可以扩展PopupWindow并覆盖Disclose方法。然后,您可以在super之前调用Disclose animation

public class SomeClass extends PopupWindow {

    @Override
    public void dismiss() {

        //TODO: animation here

        super.dismiss();
    }
}

为什么设置延迟200?动画必须在延迟一段时间后启动。但在我的例子中,控件不在setOnDismissListener@Nisarg@Sangeetha你是否会在点击时拒绝他们?谢谢你的回复。我需要动画的形象,其中放置在弹出窗口。我不想设置弹出窗口的动画。但在我的例子中,关闭弹出窗口时未调用Disclose listener。你能给我提个主意吗。为什么拒绝侦听器不检测?@shridutt kothariPopupWindow.OnDismiss Listener在弹出窗口关闭后执行某些操作时非常有用,因此,当您尝试在弹出窗口关闭后在内部设置图像动画时,它将无法工作,因为此时弹出窗口已关闭。好的。如何在关闭弹出窗口之前制作动画。有什么办法可以实现吗?@谢谢你的建议。我将在代码中添加动画侦听器。我不想在动画结束后关闭弹出窗口。我需要在关闭弹出窗口之前设置视图的动画。@SohailZahid@Sangeetha您可以根据需要对代码进行注释。@Sangeetha如果帖子有帮助,请勾选mark并投票。快乐编码
public class SomeClass extends PopupWindow {

    @Override
    public void dismiss() {

        //TODO: animation here

        super.dismiss();
    }
}