android5.0以后新增了一种跳转activity的动画,就是使用ActivityOptionsCompat,ActivityOptionsCompat虽然是一个兼容库但是只能保证在5.0以下程序不挂掉,而没有动画效果.先上个效果图.
1.从上面的效果图可以知道我们这个动画是从第一个activity的小图和第二activity的大图共享动画效果所以首先要在xml中分别设置android:transitionName=”” 这个值随便填写但是都要一样的.
2.直接调用下面的方法跳转activity即可,view就第一个activity的小图对应的view
/**
* 带伸缩动画的跳转
* @param context
* @param cla
* @param view 缩放的view
* @param
*/
public static void startIntentparams(Context context, Class cla,View view,String key, String value) {
Intent intent = new Intent(context, cla);
ActivityOptionsCompat transitionActivityOptions =
ActivityOptionsCompat.makeSceneTransitionAnimation((Activity) context,view,"secondSharedView"
);
ActivityCompat.startActivity((Activity) context,
intent, transitionActivityOptions.toBundle());
}
3.如果第二个activity中有后退键 不能直接finish而是要向下面这么写,否则会没有动画效果
public void back() {
//大于21
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
finishAfterTransition();
} else {
finish();
}
}