在Android开发过程中,如何实现Activity之间切换的动画效果?
Android2.0之后,Activity增加了实现切换动画效果的方法:
public void overridePendingTransition (int enterAnim, int exitAnim)//参数1:指Activity进入屏幕时的动画;参数2:指Activity退出屏幕时的动画
注意:1、该方法必须在 StartActivity() 或 finish() 方法之后立即调用;
2、该方法只在Android2.0以及以上版本适用;
3、手机的显示动画效果处于开启状态:设置--->显示--->显示动画效果
实现过程:
一、定义动画效果:首先在res目录创建anim目录,然后在anim目录下创建动画的xml文件:
activity_anim_enter.xml(进入动画):
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:zAdjustment="top">
<!--activity进入动画-->
<scale
android:fromXScale="1.0" android:toXScale=".5"
android:fromYScale="1.0" android:toYScale=".5"
android:pivotX="50%p" android:pivotY="50%p"
android:duration="@android:integer/config_longAnimTime" />
<alpha
android:fromAlpha="1.0" android:toAlpha="0"
android:duration="@android:integer/config_longAnimTime"/>
</set>
activity_anim_exit.xml(退出动画)
copy
<pre name="code" class="java"><?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!--activity退出动画-->
<scale
android:fromXScale="2.0" android:toXScale="1.0"
android:fromYScale="2.0" android:toYScale="1.0"
android:pivotX="50%p" android:pivotY="50%p"
android:duration="@android:integer/config_longAnimTime" />
</set>
二、Android代码如下:(Demo:实现闪屏的功能时Activity之间的切换动画效果)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent mIntent = new Intent(MainActivity.this,SencondActivity.class);
MainActivity.this.startActivity(mIntent);
MainActivity.this.finish();
overridePendingTransition(R.anim.activity_anim_enter,R.anim.activity_anim_exit);<span style="white-space:pre"> </span>//设置切换动画效果
}
}, 3000);
}
注:心血来潮,想写点什么,于是记录Android开发成长之路的首篇博客便形成了,Demo无关紧要,重要的是原理理解。若有不足,望大家见谅,菜鸟一起飞,谢谢!
