当前位置: 代码迷 >> Android >> 应用和管理Android中Activity的切换动画(一)
  详细解决方案

应用和管理Android中Activity的切换动画(一)

热度:75   发布时间:2016-05-01 11:12:42.0
使用和管理Android中Activity的切换动画(一)

在Android2.0之后,当程序在Activity之间进行切换时,是可以添加切换动画的。其实添加Activity切换动画只是很简单的调用一个api函数:overridePendingTransition(int enterAnim, int outAnim),两个参数分别指向两个定义动画的xml文件资源,下面先用一段简单的代码说明该函数的使用方法。

?

假设有两个Activity,分别为A和B。

当在A中启动B时,可以使用如下方式添加动画:

首先在xml中定义两个动画,放在R.anim文件夹目录下:

right_left_out.xml:

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" >    <translate        android:duration="400"        android:fromXDelta="0"        android:fromYDelta="0"        android:interpolator="@android:anim/decelerate_interpolator"        android:toXDelta="-100%p"        android:toYDelta="0" /></set>

?

right_left_in.xml:

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" >    <translate        android:duration="400"        android:fromXDelta="100%p"        android:fromYDelta="0"        android:interpolator="@android:anim/decelerate_interpolator"        android:toXDelta="0"        android:toYDelta="0" /></set>

?

然后在A中启动B时,就可以利用这两个动画定义文件让A和B的切换过程产生动画下过,如下代码片段演示:

Intent intent = new Intent(A.this, B.class);A.this.startActivity(intent);//参数一是下一个Activity的进入动画,参数二是当前Activity的退出动画overridePendingTransition(R.anim.right_left_in, R.anim.right_left_out);

?

在B中返回A时,可以使用如下动画:

left_right_out.xml:

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" >    <translate        android:duration="400"        android:fromXDelta="0"        android:fromYDelta="0"        android:interpolator="@android:anim/decelerate_interpolator"        android:toXDelta="100%p"        android:toYDelta="0" /></set>

?

left_right_in.xml:

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" >    <translate        android:duration="400"        android:fromXDelta="-100%p"        android:fromYDelta="0"        android:interpolator="@android:anim/decelerate_interpolator"        android:toXDelta="0"        android:toYDelta="0" /></set>

?

代码片段:

B.this.finish();overridePendingTransition(R.anim.left_right_in, R.anim.left_right.out);

?如果希望在用户按返回键是从B退回到A时也能够有动画效果,则需要在B中截取按钮事件,并手动结束当前Activity。代码片段如下:

@Overridepublic boolean onKeyUp(int keyCode, KeyEvent event){	if (keyCode == KeyEvent.KEYCODE_BACK)	{		B.this.finish();                overridePendingTransition(R.anim.left_right_in, R.anim.left_right_out);	        return true;	}	return super.onKeyUp(keyCode, event);}

?

以上只是简单的介绍了一下Activity动画怎么使用的,我相信大部分人都会用,本来就是一个api的事情。在下一篇文章中,我讲介绍另一种方式添加Activity切换动画:通过设置主题的形式设置Activity切换动画。

  相关解决方案