以编程方式将animation效果添加到android中的(以编程方式添加的)popupWindow

所以,我有一个编程添加PopupWindow,看起来像这样:

dialog = new PopupWindow(context); dialog.setContentView(ll); dialog.showAtLocation(view, Gravity.LEFT | Gravity.TOP, -70, 0); dialog.setWidth(w); dialog.setHeight(h - 50); dialog.setOutsideTouchable(true); //The dialog.update is somewhere else, I didn't bother adding it too as it is not important for this matter (I guess) 

我想要做的是有某种animation效果,就像它从我按下的buttonpopup,所以popup窗口出现。 (这只是一个例子,我只是想要任何forms的animation)。

文档也可以,只要它不是基于XML(我发现那些已经不是真的帮助我)。

如果需要其他细节,我会评论或编辑问题。

所以,我设法解决了这个问题。

有三个简单的步骤来实现animation效果。

首先:制作两个animationXML。在我的例子中是下面这两个。 animation_on.xml

  <scale xmlns:android="http://schemas.android.com/apk/res/android" android:toXScale="1.0" android:fromXScale="0.0" android:toYScale="1.0" android:fromYScale="0.0" android:pivotX="0%" android:pivotY="50%" android:startOffset="100" android:duration="300" /> 

animation_off.xml

  <scale xmlns:android="http://schemas.android.com/apk/res/android" android:toXScale="0.0" android:fromXScale="1.0" android:toYScale="0.0" android:fromYScale="1.0" android:pivotX="0%" android:pivotY="50%" android:startOffset="100" android:duration="300" /> 

第二:

 <style name="animationName" parent="android:Animation"> <item name="android:windowEnterAnimation">@anim/animation_on</item> <item name="android:windowExitAnimation">@anim/animation_off</item> </style> 

第三:

  dialog = new PopupWindow(context); // ....other code, whatever you want to do with your popupWindow (named dialog in our case here) dialog.setAnimationStyle(R.style.animationName); 

如果有人需要帮助,留下评论。我会尽快答复。

这里是设置animation风格的代码。 确保在调用showAtLocation之前调用setAnimationStyle方法。

 dialog = new PopupWindow(context); dialog.setAnimationStyle(android.R.style.Animation_Dialog); 

希望这可以帮助。

参考: setAnimationStyle