共享元素动画与Transition

1.首先我们先讲下两个activity之间的共享元素平滑过渡动画:
直接上代码:
在A(activity)中:

id_iv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                DetailActivity.startAction(MainActivity.this,v,imgurl);
            }
        });

在B(activity)中

public static void startAction(Context mContext, View view,String imgurl) {
        Intent intent = new Intent(mContext, DetailActivity.class);
        intent.putExtra("img",imgurl);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            ActivityOptionsCompat activityOptions = ActivityOptionsCompat.makeSceneTransitionAnimation(
                    (Activity) mContext, new Pair<View, String>(view, IMAGE));
            mContext.startActivity(intent, activityOptions.toBundle());
        } else {

            //让新的Activity从一个小的范围扩大到全屏
            ActivityOptionsCompat options = ActivityOptionsCompat
                    .makeScaleUpAnimation(view, view.getWidth() / 2, view.getHeight() / 2, 0, 0);
            ActivityCompat.startActivity((Activity) mContext, intent, options.toBundle());
        }

    }

在 ActivityOptionsCompat.makeSceneTransitionAnimation方法里 我们可以并列写多个 new Pair

ImagerFragment2 imagerFragment2 = ImagerFragment2.newInstance(kittenNumber);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            imagerFragment2.setSharedElementEnterTransition(new DetailsTransition());
            imagerFragment2.setEnterTransition(new Fade());
            setExitTransition(new Fade());
            imagerFragment2.setSharedElementReturnTransition(new DetailsTransition());
        }
 getActivity().getSupportFragmentManager()
                .beginTransaction()
                .addSharedElement(holder.image, "Image_fragment")
                .replace(R.id.container_fragment, imagerFragment2)
                .addToBackStack(null)
                .commit();

调用 setSharedElementEnterTransition() 指定 View 如何从第一个 Fragment 转换为跳转 Fragment 中的 View。
调用 addSharedElement() 来关联要与 Fragment 共享的 View。(第一个参数: 共享的 View,第二个参数:跳转的Fragment 中的共享 View 的 Transition Name)

PS:
最后付下整体代码下载地址:
http://download.csdn.net/download/shanshan_1117/9957658

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值