Android中的两个Activity切换的时候会有默认的动画效果,想要修改这个默认效果还是很简单的,只需要在StartActivity()后调用overridePendingTransition()方法即可以了。
这个方法需要两个参数,两个参数都是xml定义的动画效果。第一个参数指的是第二个activity进入的效果,第二个参数是退出的时候的效果。首先在res文件夹下创建一个新的文件夹名称为anim,并且选择资源类型也为anim,然后在该文件夹下创建xml文件,anim资源类型的文件拥有四种基本动画效果,alpha,rotate,scale和translate。
首先创建xml代码,在其中定义动画效果,这个作为第一个参数当作第二个活动的进入动画
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="@android:integer/config_longAnimTime"/>
然后再定义一个动画效果
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromXDelta="0.0"
android:toXDelta="0.0"
android:duration="@android:integer/config_longAnimTime">
</translate>
然后现在动画就已经定义好了,就可以在java代码中修改activity的跳转动画了
public class ChangePendingTransitonActivity extends AppCompatActivity{
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_change_pending_transiton);
button = (Button) findViewById(R.id.fadein);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(ChangePendingTransitonActivity.this, MainActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.fade, R.anim.hold);
}
});
}
}
基本使用就是这么简单,只需要在启动活动后调用
overridePendingTransition()方法就可以更改活动的过渡动画了,然后在xml代码中还有一个标签是< set >标签,在这个标签中,可以将动画组合起来,打到更好看,更复杂的动画效果