Andriod动画中windowEnterAnimation和activityOpenEnterAnimation的区别
http://www.drovik.com/ 2012-12-18 13:33:23 来源:www.drovik.com 点击:
在做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值。
发表评论(5)
[博主回复] 谢谢!