// 当前界面进入动画
void setEnterTransition (Transition transition)
// 当前界面退出动画
void setExitTransition (Transition transition)
// 以下介绍的是返回时的动画, 如果不设置就会默认和进入和退出动画相同
// 下个界面返回当前界面时, 当前界面进入动画
void setReenterTransition (Transition transition)
// 返回上个界面时当前界面退出动画
void setReturnTransition (Transition transition)
默认情况下界面A的退出动画还没有结束时, 界面B的进入动画就会开始执行. 以下两个方法默认为true. 想要进入动画等待退出动画结束后再播放就需要以下两个方法设置为false.
建议处于默认开启的状态, 否则可能出现背景空白期. 如果想清晰的看出几个不同状态的动画顺序可以开启
void setAllowEnterTransitionOverlap (boolean allow)
void setAllowReturnTransitionOverlap (boolean allow)
直接设置一个
void setTransitionManager (TransitionManager tm)
在分享元素过渡的时候是否允许重叠
void setSharedElementsUseOverlay (boolean sharedElementsUseOverlay)
Tip: 转场动画还支持主题文件里面直接设置
界面选项(ActivityOptions)
如果想兼容api16之前的系统版本可以使用ActivityOptionsCompat
该类用跳转界面的使用作为可选参数传递;
如果想让转场动画生效就必须使用下面两种方法开启界面
// 单一共享元素, 如果没有共享元素传入NULL
ActivityOptions makeSceneTransitionAnimation (Activity activity,
View sharedElement,
String sharedElementName)
// 支持多个共享元素
ActivityOptions makeSceneTransitionAnimation (Activity activity,
Pair…<View, String> sharedElements)
自定义进入和退出动画, 和overridePendingTransition方法一样
ActivityOptions makeCustomAnimation (Context context,
int enterResId,
int exitResId)
下面介绍三种系统提供的默认动画效果, 我实际使用感觉效果不是很明显, 感觉用处不大.
裁剪动画, 这是api23(Android m) 新增api.
ActivityOptions makeClipRevealAnimation (View source,
int startX,
int startY,
int width,
int h