android转场动画--共享元素(Shared Element)

发布时间:2019-08-06 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了android转场动画--共享元素(Shared Element)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

什么是共享元素呢?可以理解为当页面跳转是,看起来一个View属于界面A又属于界面B。 看一下下边这个效果:
clipboard.png

在这个转场动画中,图片和文字都是共享元素,具体怎么实现这种效果呢?

Step1

首先需要先在style.XMl配置上允许内容过度。

 <style name="AppTheme" parent="Theme.AppCompat.Light">
        <item name="andROId:windowContentTransitions">true</item>
 </style>

Step2

为共享元素设置上transtionName。设置name的时候两个界面都要添加上,这样才可以检测到是哪两个元素共享。

       <ImageView
        android:id="@+id/image"
        android:layout_width="150dp"
        android:layout_height="100dp"
        android:transitionName="image"
        android:src="@drawable/default_image" />

也可以在代码中设置:

imageView.setTransitionName("image");

SteP3

设置好以上的参数后,就可以通过跳转来添加相应的动画了。是不是特别的简单。是的。没有错。只不过再跳转的时候还需要加点东西。看下代码:

 Intent i = new Intent(mContext, Main2Activity.class);
 ActivityOptionsCompat optionsCompat = 
 ActivityOptionsCompat.makeSceneTransitionAnimation(mContext, holder.image, "image");
 startActivity(i,optionsCompat.toBundle());

通过上面的代码就可以实现ImageView的共享了。类似文章开头的效果。设置多个元素共享的时候需要这样:

 Intent i = new Intent(mContext, Main2Activity.class);
 Pair<View, String> pair = new Pair<View, String>(holder.image,"image");
 Pair<View,String> pairText = new Pair<View, String>(holder.text,"text");
 ActivityOptionsCompat optionsCompat = 
 ActivityOptionsCompat.makeSceneTransitionAnimation(mContext, pair,pairText);
 startActivity(i,optionsCompat.toBundle());

在上面的跳转代码中我们用到了ActivityOptionsCompat的两个静态方法。分别是

  • makeSceneTransitionAnimation(Activity activity,View sharedElement,String sharedElementName)
  • makeSceneTransitionAnimation(Activity activity,Pair<View, String>... sharedElements)

通过函数的参数我们应该就可以看的明白,就不解释了。这两个函数就是用来设置共享元素的。

脚本宝典总结

以上是脚本宝典为你收集整理的android转场动画--共享元素(Shared Element)全部内容,希望文章能够帮你解决android转场动画--共享元素(Shared Element)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。