Acitivity进入退出动画效果的两种实现
2013-11-01 11:27
323 查看
以前做项目的时候一直没有注意过activity切换动画的问题,一方面因为没有人要求,一方面因为自己还没能静下心来好好学习。现在把这个问题弄清楚了,拿出来分享下。自己也做个总结。
我这里说的两种实现一种是通过调用overridePendingTransition方式指定将要打开的activity的动画和当前activity的退出动画;另一种是我昨天在做dialog进入退出时提出的想法,通过style来指定某个activity的进入退出的动画效果。
先说第一种实现方式:
overridePendingTransition方法的作用就是指定将要打开的Activity的动画和当前Activity的退出动画
谷歌官网上说,该方法应该在调用startActivity()或者finish()之后立即调用
overridePendingTransition方法的第一个参数enterAnim是指进入Activity的动画,第二个参数exitAnim是指当前Activity的退出动画,比如说我代码这么写:
我的MainActivity会执行R.anim.exit动画,被打开的MainActivity2会执行R.anim.enter动画。
finish的时候调用:
我是在刚刚打开的MainActivity2里面执行的这段代码,所以MainAcivity2会执行R.anim.exit动画,而MainActivity将重新获得焦点显示出来,将执行R.anim.enter动画。
因为以前对overridePendingTransition实现进入退出动画一直处于混乱状态,所以第一种方法啰嗦的多了点。
R.anim.enter(从左侧进入)
R.anim.exit(从右侧退出)
第二中发法实现Activity动画效果主要是通过style进行指定。
可以写一个如下的style
然后通过window.setWindowAnimations方法指定给当前的Activity,这样,当这个Activity进入退出的时候就会分别执行windowEnterAnimation和windowExitAnimation Item指定的anim了。具体的enter和exit动画和上面的一样。
设置代码和设置dialog进入退出一样:
另外还可以通过在配置文件中通过给Ativity指定thame来将动画效果设置给Activity
代码如下:
除了可以通过windowEnterAnimation和windowExitAnimation Item指定进入退出动画效果,还可以通过以下Item来指定
另外,我试了下这同时用overridePendingTransition指定Activity的动画和用style指定Activity的动画,发现他们指定的动画会同时执行。
我这里说的两种实现一种是通过调用overridePendingTransition方式指定将要打开的activity的动画和当前activity的退出动画;另一种是我昨天在做dialog进入退出时提出的想法,通过style来指定某个activity的进入退出的动画效果。
先说第一种实现方式:
overridePendingTransition方法的作用就是指定将要打开的Activity的动画和当前Activity的退出动画
谷歌官网上说,该方法应该在调用startActivity()或者finish()之后立即调用
overridePendingTransition方法的第一个参数enterAnim是指进入Activity的动画,第二个参数exitAnim是指当前Activity的退出动画,比如说我代码这么写:
Intent i = new Intent(MainActivity.this, MainActivity2.class); startActivity(i); overridePendingTransition(R.anim.enter, R.anim.exit);
我的MainActivity会执行R.anim.exit动画,被打开的MainActivity2会执行R.anim.enter动画。
finish的时候调用:
this.finish(); overridePendingTransition(R.anim.enter, R.anim.exit);
我是在刚刚打开的MainActivity2里面执行的这段代码,所以MainAcivity2会执行R.anim.exit动画,而MainActivity将重新获得焦点显示出来,将执行R.anim.enter动画。
因为以前对overridePendingTransition实现进入退出动画一直处于混乱状态,所以第一种方法啰嗦的多了点。
R.anim.enter(从左侧进入)
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="2000" android:fromXDelta="-100%p" android:toXDelta="0%p" /> </set>
R.anim.exit(从右侧退出)
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="2000" android:fromXDelta="0%p" android:toXDelta="100%p" /> </set>
第二中发法实现Activity动画效果主要是通过style进行指定。
可以写一个如下的style
<style name="mystyle" parent="android:Animation"> <item name="@android:windowEnterAnimation">@anim/enter</item> <item name="@android:windowExitAnimation">@anim/exit</item> </style>
然后通过window.setWindowAnimations方法指定给当前的Activity,这样,当这个Activity进入退出的时候就会分别执行windowEnterAnimation和windowExitAnimation Item指定的anim了。具体的enter和exit动画和上面的一样。
设置代码和设置dialog进入退出一样:
getWindow().setWindowAnimations(R.style.mystyle);
另外还可以通过在配置文件中通过给Ativity指定thame来将动画效果设置给Activity
代码如下:
<style name="AppTheme" parent="AppBaseTheme"> <item name="android:windowAnimationStyle">@style/mystyle</item> </style> <style name="mystyle" parent="android:Animation"> <item name="@android:windowEnterAnimation">@anim/enter</item> <item name="@android:windowExitAnimation">@anim/exit</item> </style> //配置文件中这么写的 <activity android:name="com.example.activityanimdemo.MainActivity2" android:theme="@style/AppTheme" > </activity>
除了可以通过windowEnterAnimation和windowExitAnimation Item指定进入退出动画效果,还可以通过以下Item来指定
<item name="android:activityOpenEnterAnimation"></item> <item name="android:activityOpenExitAnimation"></item> <item name="android:activityCloseEnterAnimation"></item> <item name="android:activityCloseExitAnimation"></item>
另外,我试了下这同时用overridePendingTransition指定Activity的动画和用style指定Activity的动画,发现他们指定的动画会同时执行。
相关文章推荐
- Acitivity进入退出动画效果的两种实现
- RecyclerView实现Item滑动加载进入动画效果
- Android中的popupwindow从底部进入和退出的动画效果
- 界面进入和退出的动画效果
- Activity实现退出和进入动画和BaseActivity的编写
- android进入应用程序时实现动画效果
- 界面进入和退出的动画效果
- Android 动画,从顶部进入,底部往上退出,类似于卷窗口的效果
- android设置dialog显示和activity进入退出的动画效果
- 单独的Activity在进入或者退出时设置动画效果
- 窗口进入退出的 简单滑动动画效果
- 实现APP进入登录界面之前的动画效果
- RecyclerView实现Item滑动加载进入动画效果
- 如何实现Activity退出到桌面时的动画效果
- 进入和退出动画可以自定义的界面切换动画效果
- Android开发之常用的loading等待效果实现,仿微博等待动画。两种实现方式详解
- 实现和QQ退出聊天对话框的动画效果
- Android程序启动时的进入动画效果实现(方式之一)
- Android中的popupwindow进入和退出的动画效果
- 动画Animation两种实现方式的不同效果