搬砖之路-转场动画ActivityOptions

接触场景:
这里写图片描述

开发文档里要求的。

需求:点击列表里的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);
        }

    }

全部完成!还有其他的效果,有空整理

猜你喜欢

转载自blog.csdn.net/li419360214/article/details/80064233