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