在android中以编程方式将动画效果添加到(以编程方式添加的)弹出窗口

在android中以编程方式将动画效果添加到(以编程方式添加的)弹出窗口,android,popupwindow,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);

因此,我有一个以编程方式添加的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)
我想做的是有某种动画效果,就像它从我按下的按钮上弹出,这样弹出窗口就会出现。(这只是一个例子,我只想要任何类型的动画)

文档也可以,只要它不是基于XML的(我发现它们已经存在了——并没有真正帮助我)


如果需要其他详细信息,我将对问题进行评论或编辑。

以下是设置动画样式的代码。确保在调用showAtLocation之前调用setAnimationStyle方法

dialog = new PopupWindow(context);
dialog.setAnimationStyle(android.R.style.Animation_Dialog);
希望这有帮助


参考资料:

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

实现动画效果有三个简单步骤

第一: 制作两个XML作为动画。在我的例子中,这两个XML就是下面这两个。 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" />

如果有人需要这方面的帮助,请留言。我会尽快回答。

好吧,很抱歉,这对我没什么帮助。我需要的是XML逻辑。不管怎样,我明白了。稍后我会发布答案,因为现在我有点忙着处理另一个问题。不,不是它不起作用,只是你的答案不是我想要的。我需要XML的东西。更重要的是:制作两个动画XML(一个是淡入效果,另一个是淡出效果),我需要用这两个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);