Andriod动画中windowEnterAnimation和activityOpenEnterAnimation的区别


转自: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 . PauseDialogAnimation
B、通过在创建Dialog的过程中动态的把动画文件的ID穿进去。
Dialog  dialog  =   new   Dialog ( this ,  R . style . PauseDialog );
// Setting the title and layout for the dialog
dialog . 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>

然后把mytheme这个style作为Activity的theme就行了

b、

      也通过acitvity获取它的window, 然后和设置dialog一样进行设置。  acitvity的动画设置归根结底是设置Window的layoutparams里的windowAnimations值。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值