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

Android Activity/活动页面切换实现动画效果

2015-05-13 15:41 543 查看
1.首先在res/anim下新建动画文件:

1)当前活动页面退出动画:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

<scale
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:duration="500"
android:fromXScale="1"
android:fromYScale="1"
android:pivotX="0%"
android:pivotY="50%"
android:toXScale="0.8"
android:toYScale="0.8"/>

<alpha
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:duration="500"
android:fromAlpha="1"
android:toAlpha="0"/>

</set>


这里可以使用的标签有主要有<scale>, <alpha>, <rotation>。

<scale>标签中interpolator指动画的效果,我使用的是系统的加速-减速的效果。

duration指整个动画播放时间,以毫秒为单位。

fromXScale/toXScale值X方向长度从100%变化成80%,fromYScale/toYScale同理。

pivotX/pivotY指缩放中心,我这里以左中为中心点缩放,若设置50%/50%则以中心点缩放。

<alpha>标签很容易理解,在500ms内从可见变为不可见。

2)传入的活动页面进入动画:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

<scale
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:duration="500"
android:fromXScale="0.8"
android:fromYScale="0.8"
android:pivotX="100%"
android:pivotY="50%"
android:toXScale="1"
android:toYScale="1"/>

<alpha
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:duration="500"
android:fromAlpha="0"
android:toAlpha="1"/>

</set>


动画效果和进入相呼应,方向相反。

2.在Java代码中的实现:

……
switch (item.getItemId()) {
case R.id.action_setting:
Intent intent1 = new Intent(MainActivity.this, SettingActivity.class);
startActivity(intent1);
overridePendingTransition(R.anim.enter_zoom_in,R.anim.enter_zoom_out);
break;
case R.id.action_about:
Intent intent2 = new Intent(MainActivity.this, About.class);
startActivity(intent2);
overridePendingTransition(R.anim.enter_zoom_in,R.anim.enter_zoom_out);
break;
}
……


这里调用方法overridePendingTransition(),次方法接受两个参数,第一个为传入的活动页面进入动画,第二个为当前活动页面退出动画。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: