接触场景:
开发文档里要求的。
需求:点击列表里的item图片,放大跳转到大图界面,关闭大图界面时,缩小返回至列表里的item图片处
实现: 使用ActivityOptions.makeSceneTransitionAnimation
流程:
1、在清单文件里的跳出activity的主题里 添加
<item name="android:windowAllowEnterTransitionOverlap">true</item>
因为转场动画是5.0以后才有的所以必须要在res文件下新建values-21包,并在其中新建styles文件,把通用的style复制过来,填上上面的东西,完成
2、在点击跳转处增加跳转方法
public static void toNextActivity(Activity mActivity, Intent mIntent,View mView,String tag){
// 判断版本号,转场动画是在5.0以后添加的,所以它只在21版本以上起作用
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
//设置转场动画,makeSceneTransitionAnimation为固定动画,实现放大效果,
// 参数依次为:mActivity=当前activity,mView=当前跳出view,tag=与下一个activity联系的string串
//tag的使用,与下一个界面产生联系
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation( mActivity, mView, tag);
mActivity.startActivity(mIntent, options.toBundle());
} else {
NextActivityUtil.toNextActivity( mActivity, mIntent, false);
}
}
跳出完成。
3、跳入部分
<ImageView
android:id="@+id/iv2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:transitionName="pic"
android:src="@mipmap/aa" />
android:transitionName=”pic” 其中的pic要与2里跳出的tag值相同,这两个值必须一样
4,跳入界面关闭返回
public static void finishAfterTransition1(Activity mActivity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mActivity.finishAfterTransition();
} else {
NextActivityUtil.finishActivity(mActivity);
}
}
全部完成!还有其他的效果,有空整理