转自:http://www.drovik.com/html/7258433323.html
在做android动画的过程中,遇到了设置动画的两个参数windowEnterAnimation和activityOpenEnterAnimation。看了android的源代码和资源文件,终于明白二者的区别: windowEnterAnimation用于修饰dialog动画, activityOpenEnterAnimation用于修饰activity的动画。
具体用法如下:
1、设置Dialog动画
A、通过getWindow()方法获取它的窗口,然后通过getAttributes()方法获得window的WindowManager.LayoutParams lp, lp有个公共属性windowAnimations, 只要把要实现的animation的id赋值给它就可以了Dialog dialog = new Dialog ( this );dialog . getWindow (). getAttributes (). windowAnimations = R . style . PauseDialogAnimationB、通过在创建Dialog的过程中动态的把动画文件的ID穿进去。Dialog dialog = new Dialog ( this , R . style . PauseDialog );// Setting the title and layout for the dialogdialog . setTitle ( R . string . pause_menu_label );dialog . setContentView ( R . layout . pause_menu );说明:需要首先在res/value/下创建style.xml文件<? xml version = "1.0" encoding = "utf-8" ?><resources><style name = "PauseDialog" parent = "@android:style/Theme.Dialog" >
< item name = "android:windowAnimationStyle" >@ style / PauseDialogAnimation </ item >
</style>
<style name = "PauseDialogAnimation" >
< item name = "android:windowEnterAnimation" >@ anim / spin_in </ item >< item name = "android:windowExitAnimation" >@ android : anim / slide_out_right </ item ></style></resources>
2、设置activity动画
a、
activity的进入和退出效果可以通过
@android:activityOpenEnterAnimation,@android:activityOpenExitAnimation,@android:activityCloseEnterAnimation,@android:activityCloseExitAnimation
四个item设定。
具体代码设置参考如下:
<style name="myact">
<item name="@android:activityOpenEnterAnimation">@anim/act_enter</item>
<item name="@android:activityOpenExitAnimation">@anim/act_exit</item>
<item name="@android:activityCloseEnterAnimation">@anim/act_enter</item>
<item name="@android:activityCloseExitAnimation">@anim/act_exit</item>
</style>
<style name="mytheme" parent="@android:style/Theme">
<item name="@android:windowAnimationStyle">@style/myact</item>
</style>
b、然后把mytheme这个style作为Activity的theme就行了
也通过acitvity获取它的window, 然后和设置dialog一样进行设置。 acitvity的动画设置归根结底是设置Window的layoutparams里的windowAnimations值。