看了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设定。

Activity的退出和進入效果的更多相关文章

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

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

  2. Android 頁面中有 EditText ,進入時取消自動彈出鍵盤

    Android 畫面裡的 EditText 被 Focus 時 會自動彈出鍵盤 這是方便使用者習慣的設計 不過筆者在開發時發現 有時候方便過頭了 原因 一開始進入有 EditText 的頁面時 Edi ...

  3. 有關更新Java 至UPDATE 45 後出現沒法進入ORACLE EBS

    近日部份使用者在更新Java 至UPDATE 45 後出現沒法進入ORACLE.  解決方法如下. 在開始 => 程式集 => JAVA => Configure Java中 (Ja ...

  4. CSS3实现图片渐入效果

    很多网站都有那种图片渐入的效果,如:http://www.mi.com/minote/,这种效果用css3和一些js实现起来特别简单. 拿我之前做的页面来说一下怎么利用css3来实现图片渐入效果. 下 ...

  5. windows10 開機失敗,且按F8無法進入安全模式

    windows10 開機失敗,且按F8無法進入安全模式: 在cmd視窗下: bcdedit set {default} bootmenupolicy legacy 重啟,再按F8試一試吧! To En ...

  6. scrollReveal(页面缓入效果插件)

    scrollReveal(页面缓入效果插件)实现页面滚动时动画加载元素效果 前面我去了解了元素距页面视图距离,想实现页面滚动是动画加载元素(https://www.cnblogs.com/chengh ...

  7. Activity切换动画(overridePendingTransition)-翻页效果

    Activity的切换动画指的是从一个activity跳转到另外一个activity时的动画.{它包括两个部分:一部分是第一个activity退出时的动画:另外一部分时第二个activity进入时的动 ...

  8. android细节之禁用activity的系统的默认切换效果

    网上有非常多方法来禁用系统的默认效果,这里贴上来我觉得最简单的方法. overridePendingTransition(Animation.INFINITE, Animation.INFINITE) ...

  9. 利用Theme自定义Activity进入退出动画

    有没有觉得Activity的默认动画太快了或者太难看了.. 我原来使用Activity.overridePendingTransition来自定义Activity的进入动画,却发现没法定义退出的动画. ...

随机推荐

  1. 洛谷 P1018 乘积最大

    P1018 乘积最大 题目描述 今年是国际数学联盟确定的“ 20002000 ――世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰 9090 周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学 ...

  2. pycharm里html注释是{# #}而不是<!-- -->?

    修改方式:如图修改成值None以后,command+/快捷键,html注释的符号就是<!-- 注释内容 -->:为Jinja2的时候,注释符号就是{# 注释内容 #} 修改成None时,H ...

  3. golang time.Duration()的问题解疑

    原文:  How to multiply duration by integer? 看到golang项目中的一段代码, ---------------------------------------- ...

  4. Samba.conf案例 Ubuntu

    # Sample configuration file for the Samba suite for Debian GNU/Linux.## This is the main Samba confi ...

  5. [Web Analytics] Into to Web Analytics

    Just to get started for myself. Any developer who doesn't care about the business is not a good soft ...

  6. C# .NET Visual Studio VS2008如何显示行号

    工具-选项,然后勾选"显示所有设置",然后在文本编辑器下面找到所有语言,勾选"行号"即可.  

  7. CCNP路由实验之八 路由重公布

     CCNP路由实验之八 路由重公布 在前面几个实验,已经学习了静态路由和动态路由.如今,我们要掌握怎样使它们在一个网络中融合,即路由重公布. 使用出站口作为静态路由 0 使用下一跳地址作为静态路由 ...

  8. 使用heartbeat+monit实现主备双热备份系统

    一.使用背景 项目须要实现主备双热自己主动切换的功能,保证系统7*24小时不间断执行.现已有两台双网卡的IBM的server,为了不再添加成本採购独立外部存储设备和双机热备软件.採用了linux下开源 ...

  9. vbs io file

    <% ''/*******************************二进制文件操作类************************************ ''/*作者:死在水中的鱼(死 ...

  10. Linux操作系统改动PATH的方法

    1. 暂时改动: 使用export.比如#export PATH=$PATH:/etc/apache/bin 2. 针对用户的改动: vi ~/.bash_profile 增加:export PATH ...