Activity的退出和進入效果
看了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的退出和進入效果的更多相关文章
- Android UI效果实现——Activity滑动退出效果
更新说明: 1.在QQ网友北京-旭的提醒下,在SlideFrame的initilize方法中添加了focusable.focusableInTouch.clickable的状态设置,否则会导致部分情况 ...
- Android 頁面中有 EditText ,進入時取消自動彈出鍵盤
Android 畫面裡的 EditText 被 Focus 時 會自動彈出鍵盤 這是方便使用者習慣的設計 不過筆者在開發時發現 有時候方便過頭了 原因 一開始進入有 EditText 的頁面時 Edi ...
- 有關更新Java 至UPDATE 45 後出現沒法進入ORACLE EBS
近日部份使用者在更新Java 至UPDATE 45 後出現沒法進入ORACLE. 解決方法如下. 在開始 => 程式集 => JAVA => Configure Java中 (Ja ...
- CSS3实现图片渐入效果
很多网站都有那种图片渐入的效果,如:http://www.mi.com/minote/,这种效果用css3和一些js实现起来特别简单. 拿我之前做的页面来说一下怎么利用css3来实现图片渐入效果. 下 ...
- windows10 開機失敗,且按F8無法進入安全模式
windows10 開機失敗,且按F8無法進入安全模式: 在cmd視窗下: bcdedit set {default} bootmenupolicy legacy 重啟,再按F8試一試吧! To En ...
- scrollReveal(页面缓入效果插件)
scrollReveal(页面缓入效果插件)实现页面滚动时动画加载元素效果 前面我去了解了元素距页面视图距离,想实现页面滚动是动画加载元素(https://www.cnblogs.com/chengh ...
- Activity切换动画(overridePendingTransition)-翻页效果
Activity的切换动画指的是从一个activity跳转到另外一个activity时的动画.{它包括两个部分:一部分是第一个activity退出时的动画:另外一部分时第二个activity进入时的动 ...
- android细节之禁用activity的系统的默认切换效果
网上有非常多方法来禁用系统的默认效果,这里贴上来我觉得最简单的方法. overridePendingTransition(Animation.INFINITE, Animation.INFINITE) ...
- 利用Theme自定义Activity进入退出动画
有没有觉得Activity的默认动画太快了或者太难看了.. 我原来使用Activity.overridePendingTransition来自定义Activity的进入动画,却发现没法定义退出的动画. ...
随机推荐
- 对于事务ACID的理解
ACID,即以下四点: 原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生. 一致性(Consistency) 事务前后数据的完整性必须保持一致 ...
- java文件工具类
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...
- python的for else语句
Python循环中的else语句 绝大部分编程语言中都有条件判断语句,比如 if … else ,在大部语言中,else 一般只在条件判断语句中出现,与 if 语句配套出现,不过在 Python 中, ...
- 条款九: 避免隐藏标准形式的new
因为内部范围声明的名称会隐藏掉外部范围的相同的名称,所以对于分别在类的内部和全局声明的两个相同名字的函数f来说,类的成员函数会隐藏掉全局函数 class x { public: void f(); / ...
- 【转】Golang 关于通道 Chan 详解
原文:http://blog.csdn.net/netdxy/article/details/54564436 在用 chan 类型时,发生死锁的错误,表面上看不出什么问题 ------------- ...
- 菜鸟学python-基础(2)
变量命名: 1)必须以字符或下划线开头 2)以单下划线开头(_fo)表示不能直接訪问的类属性,须要类提供的接口进行訪问 3)以双下划线开头(__foo)的代表类的私有成员 4)以双下划线开头(__fo ...
- prototype与几个循环的心得
<一>prototypeprototype其实是函数的一个属性,并且只有函数有这个属性,这个属性就是给函数增加函数或者属性的,比如写一个function one(){},那么one.pro ...
- MariaDB -- 数据类型
Mariadb 的数据类型 MariaDB数据类型可以分为数字,日期和时间以及字符串值. 使用数据类型的原则:够用就行, 尽量使用范围小的,而不用大的 常用的数据类型 整数:int, bit 小数:d ...
- Java对话框总结
总结起来非常easy: 1,对话框类型:消息.确认,选项.输入 2,选择图标:错误,信息.警告.问题,无或者自己定义 3,选择消息:字符串,图标.自己定义组件或者他们的集合 4.对于确认对话框,选择选 ...
- 卷积神经网络-进化史】从LeNet到AlexNet
目录视图 摘要视图 订阅 [置顶] [卷积神经网络-进化史]从LeNet到AlexNet 标签: cnn 卷积神经网络 深度学习 2016年05月17日 23:20:3046038人阅读 评论(4) ...