Android 弹出窗口动画不工作

Android 弹出窗口动画不工作,android,android-animation,Android,Android Animation,我有一个很好的弹出窗口,我想出现一个动画。我是这样做的: popup.setAnimationStyle(R.anim.appear); popup.showAtLocation(popupMenuLayout, gravity, offsetX, offsetY); 然后,我设置了一个用于更改动画的侦听器: popup.setOnDismissListener(new PopupWindow.OnDismissListener(){ @Override public void onDis

我有一个很好的弹出窗口,我想出现一个动画。我是这样做的:

popup.setAnimationStyle(R.anim.appear);
popup.showAtLocation(popupMenuLayout, gravity, offsetX, offsetY);
然后,我设置了一个用于更改动画的侦听器:

popup.setOnDismissListener(new PopupWindow.OnDismissListener(){
 @Override
 public void onDismiss(){
  popup.setAnimationStyle(R.anim.disappear);
 }      
}); 
但是,嘿,这行不通。对于res/anim/Display,两者都不显示:

<translate xmlns:android="http://schemas.android.com/apk/res/android"
 android:fromYDelta="100%"
 android:toYDelta="0"
 android:duration="1000" 
/>

也不适用于res/anim/define:

<translate xmlns:android="http://schemas.android.com/apk/res/android"
 android:fromYDelta="0"
 android:toYDelta="100%"
 android:duration="1000"
/>


有什么线索吗?

实际上,
PopupWindow.setAnimationStyle
需要一个包含两个条目的样式。您需要有两个XML,每个XML包含一个
,一个用于显示窗口,另一个用于隐藏窗口。完成后,将以下内容放入values/styles.xml中:

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

@动画/弹出式节目
@动画/弹出窗口隐藏
并将动画样式设置为
R.style.AnimationPopup
。那就行了

我从文档中得到的信息似乎没有提到它

更新:


2012年对Android SDK的更新改变了XML语法。最初的
@android:windowEnterAnimation
现在变成了
android:windowEnterAnimation
。因此,这个答案会相应地更新。

如果这个答案对你有帮助,那么接受它作为答案如何。您的示例中有一个错误:它应该是“android:windowEnterAnimation”,而不是“windowexitanimation的@android:windowEnterAnimation”。对于windowexitanimation,android文档在某些方面真的很蹩脚,感谢您提供了非常好的输入!