300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > android 元素共享动画 android转场动画--共享元素(Shared Element)

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

时间:2022-04-18 18:19:45

相关推荐

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

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

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

Step1

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

true

Step2

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

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 pair = new Pair(holder.image,"image");

Pair pairText = new Pair(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... sharedElements)

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。