您的位置:首页 > 移动开发 > Android开发

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

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

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

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

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

right_left_out.xml:

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代码


<?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的切换过程产生动画下过,如下代码片段演示:

Java代码


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代码


<?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代码


<?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>

代码片段:

Java代码


B.this.finish();

overridePendingTransition(R.anim.left_right_in, R.anim.left_right.out);

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

Java代码


@Override

public 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切换动画。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: