看了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为:
<style name="mydialog">
 
    <item name="@android:windowEnterAnimation">@anim/dialog_enter</item>
 
   <item name="@android:windowExitAnimation">@anim/dialog_exit</item>
 
</style>
 
然后把这个style的id传给lp.windowAnimations就行了。
 
     Activity的进入和退出效果可以通过@android:activityOpenEnterAnimation,@android:activityOpenExitAnimation,@android:activityCloseEnterAnimation,@android:activityCloseExitAnimation这几个item设定,
第一个表示新的activity创建进入效果,第2个表示activity还没有finish()下退出效果,第3个表示上一个activity返回进入效果,第4个表示的是activity finish()之后退出效果...(好似有点乱了)。
 
具体设置参考如下:
 
  <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就行了,还有一个办法就是通过Acitvity获取它的window, 然后和设置dialog一样进行设置,因为归根到底是设置Window的layoutparams里的windowAnimations值。
所以Activity的进入和退出效果也可以通过@android:windowEnterAnimation和@android:windowExitAnimation这两个item设定。
 

自定义Window进入和退出效果(转)的更多相关文章

  1. Android 设定activity的进入和退出效果

    看了android的源代码和资源文件,终于明白如何去修改设置Dialog和Activity的进入和退出效果了.设置Dialog首先通过 getWindow()方法获取它的窗口,然后通过getAttri ...

  2. [WPF]使用WindowChrome自定义Window Style

    1. 前言 做了WPF开发多年,一直未曾自己实现一个自定义Window Style,无论是<WPF编程宝典>或是各种博客都建议使用WindowStyle="None" ...

  3. WPF自定义Window样式(2)

    1. 引言 在上一篇中,介绍了如何建立自定义窗体.接下来,我们需要考虑将该自定义窗体基类放到类库中去,只有放到类库中,我们才能在其他地方去方便的引用该基类. 2. 创建类库 接上一篇的项目,先添加一个 ...

  4. WPF自定义Window样式(1)

    1. 引言 WPF是制作界面的一大利器.最近在做一个项目,用的就是WPF.既然使用了WPF了,那么理所当然的,需要自定义窗体样式.所使用的代码是在网上查到的,遗憾的是,整理完毕后,再找那篇帖子却怎么也 ...

  5. 使用windowAnimations定义Activity及Dialog的进入退出效果

    看了android的源代码和资源文件,终于明白如何去修改设置Dialog和Activity的进入和退出效果了.设置Dialog首先通过getWindow()方法获取它的窗口,然后通过getAttrib ...

  6. [WPF自定义控件]使用WindowChrome自定义Window Style

    1. 为什么要自定义Window 对稍微有点规模的桌面软件来说自定义的Window几乎是标配了,一来设计师总是克制不住自己想想软件更个性化,为了UI的和谐修改Window也是必要的:二来多一行的空间可 ...

  7. [WPF自定义控件]?使用WindowChrome自定义Window Style

    原文:[WPF自定义控件]?使用WindowChrome自定义Window Style 1. 为什么要自定义Window 对稍微有点规模的桌面软件来说自定义的Window几乎是标配了,一来设计师总是克 ...

  8. 自定义view实现水波纹效果

    水波纹效果: 1.标准正余弦水波纹: 2.非标准圆形液柱水波纹: 虽说都是水波纹,但两者在实现上差异是比较大的,一个通过正余弦函数模拟水波纹效果,另外一个会运用到图像的混合模式(PorterDuffX ...

  9. Android UI效果实现——Activity滑动退出效果

    更新说明: 1.在QQ网友北京-旭的提醒下,在SlideFrame的initilize方法中添加了focusable.focusableInTouch.clickable的状态设置,否则会导致部分情况 ...

随机推荐

  1. Visual Studio新建的源文件的默认编码

    原来VS新建的源文件默认的编码是根据系统locale选择的.我的是国标2312.我草.可坑死我了.一直不知道. 当时主要是需要用doxygen生成html文档,它默认的输入文件的格式是UTF-8,是不 ...

  2. DLL模块例2:使用__declspec(dllexport)导出函数,extern "C"规范修饰名称,隐式连接调用dll中函数

    以下内容,我看了多篇文章,整合在一起,写的一个例子,关于dll工程的创建,请参考博客里另一篇文章:http://www.cnblogs.com/pingge/articles/3153571.html ...

  3. tomcat+redis实现session共享缓存

    一:linux下redis安装 1.wget http://download.redis.io/releases/redis-3.2.4.tar.gz 2.tar xzf redis-3.2.4.ta ...

  4. Android设置上下边框或者左右边框

    <?xml version="1.0" encoding="utf-8"?> <com.sunskyjun.fwproject.widgts. ...

  5. HDU 2435 There is a war (网络流-最小割)

    There is a war Problem Description       There is a sea.       There are N islands in the sea.       ...

  6. iOS蓝牙4.0协议简单介绍

    iOS开发蓝牙4.0的框架是CoreBluetooth,本文主要介绍CoreBluetooth的使用,关于本文中的代码片段大多来自github上的一个demo,地址是myz1104/Bluetooth ...

  7. Eclipse中如何安装和使用GrepCode插件

    GrepCode(GC)Eclipse插件允许Eclipse用户在Eclipse IDE中搜索由GrepCode提供的工厂类.本教程介绍如何安装和使用插件.使用Eclipse3.5(Galileo)的 ...

  8. Stack and queue.

    队列的定义及基本运算 1.定义    队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表 (1)允许删除的一端称为队头(Front). (2)允许插入的一端称为队尾(Rea ...

  9. tomcat端口号、日志、启停

    cd到tomcat目录下 1.[root@rusky bin]# ./shutdown.sh         关闭tomcat 2.[root@rusky bin]# ./startup.sh     ...

  10. 02-大文件Copy(FileStream文件流类)

    static void Main(string[] args) { string source = @"e:\1.exe";//要移动文件的路径 大文件 string target ...