Activity有默认的切换效果,但是这个效果我们也可以自定义,主要用到overridePendingTransition(int enterAnim,int exitAnim)这个方法,这个方法必须在startActivity(Intent)之前和finish()之后调用才能生效,参数见名知意,指定Activity打开时和暂停时的动画。
例子启动一个Activity时:
startActivity(new Intent(this,BActivity.class));
overridePendingTransition(R.anim.myanim, R.anim.myanim);
当一个Activity不可见时:
@Override
public void finish() {
super.finish();
overridePendingTransition(R.anim.myanim, R.anim.myanim);
}
另附上Fragment的切换效果,在res内新建文件夹animator新建文件slid_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<objectAnimator
android:duration="1000"
android:propertyName="x"
android:valueFrom="1000"
android:valueTo="0"
android:valueType="floatType" />
</set>
在开始Fragment事务后,操作fragment之前调用setsetCustomAnimations(in,out):
FragmentTransaction transaction = fm.beginTransaction();
transaction.setCustomAnimations(R.animator.slid_in, R.animator.slid_in);
transaction.replace(R.id.b_content, b);