lp.windowAnimations = R.style.anim_view;//动画
设置系统动画可能还有效果,设置自己的动画似乎没有什么效果,
底部别人提供了自定义的动画,是OK的
转载地址是 :
http://www.2cto.com/kf/201408/328978.html
WindowManager上像在Activity中使用动画效果无效,比如下面的代码:
二、分析 为什么会不执行动画呢,原因在于:the view which is going to be animated must not be directly added to the top window, because top window of android is not a real ViewGroup. so the view must be added to a ViewGroup like FrameLayout first and then this ViewGroup be added to the top window.意思是说动画执行的条件是不能直接添加到最顶层的Window,而是需要一个容器。比如,在xml中定义的控件就可以使用动画。 后来发现一种解决方案是WindowManager.LayoutParams有一个动画属性:windowAnimations,可以这样使用
但是,这是对整个View的一个动画,而不是View中某个控件的动画。而且,使用的时候需要在View状态改变的时候才会出现动画效果。比如消失/出现的时候才会有动画效果。因此这个方案也是行不通的。 既然WindowManager不是一个ViewGroup,那么就构造一个容器来装载WindowManager,可以如下:
这样一来,就可以实现在WindowManager上的动画效果了。其实,造成这种现象的原因在于对
Android
API以及其体系的理解不够深刻。忽略了动画执行所需要的基本条件,影射的问题就是考虑问题不够全面。所以,不论开发哪种功能,使用哪个API,前期的规划、调研很重要。知己知彼,仅此而已。