自定义Window进入和退出效果(转)

2020-12-13 05:20

阅读:315

标签:mamicode

看了android的源代码和资源文件,终于明白如何去修改设置Dialog和Activity的进入和退出效果了。
设置Dialog首先通过getWindow()方法获取它的窗口,
然后通过getAttributes()方法获得window的WindowManager.LayoutParams lp,
 lp有个公共属性windowAnimations, 只要把要实现的animation的id赋值给它就可以了。
问题是这个animation应该怎么写呢,
研究发现,窗口进入和退出的效果分别是通过@android:windowEnterAnimation和@android:windowExitAnimation两个item设定的,比如进入时的anim是@anim/dialog_enter, 退出的是@anim/dialog_exit, 则声明一个style为:
 
    @anim/dialog_enter
 
   @anim/dialog_exit
 
 
然后把这个style的id传给lp.windowAnimations就行了。
 
     Activity的进入和退出效果可以通过@android:activityOpenEnterAnimation,@android:activityOpenExitAnimation,@android:activityCloseEnterAnimation,@android:activityCloseExitAnimation这几个item设定,
第一个表示新的activity创建进入效果,第2个表示activity还没有finish()下退出效果,第3个表示上一个activity返回进入效果,第4个表示的是activity finish()之后退出效果...(好似有点乱了)。
 
具体设置参考如下:
 
 
 
      @anim/act_enter
 
      @anim/act_exit
 
      @anim/act_enter
 
      @anim/act_exit
 
 
 
   
 
      @style/myact
 
 
 
然后把mytheme这个style作为Activity的theme就行了,还有一个办法就是通过Acitvity获取它的window, 然后和设置dialog一样进行设置,因为归根到底是设置Window的layoutparams里的windowAnimations值。
所以Activity的进入和退出效果也可以通过@android:windowEnterAnimation和@android:windowExitAnimation这两个item设定。
 
http://ningtukun.blog.163.com/blog/static/186541445201361793929383/

自定义Window进入和退出效果(转)

标签:mamicode

原文地址:http://www.cnblogs.com/daishuguang/p/3865107.html


评论


亲,登录后才可以留言!