共享元素:是A页面向B页面跳转的时候的一种炫酷动画效果,可以实现一个或多个元素进行共享,是可变参数 。
(只有 Android5.0以上的版本才能展现出效果来,共享的元素也就是View)
一、首先,在A activity 和 B activity里面的要共享的View指定属性 android:transitionName="xxx";
这是A activity的xml:
<ImageView
android:id="@+id/image"
android:layout_width="120dp"
android:layout_height="120dp"
android:transitionName="name"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:src="@mipmap/ic_launcher"/>
<ImageView
android:id="@+id/image_left"
android:layout_width="120dp"
android:layout_height="120dp"
android:transitionName="name_one"
android:layout_alignParentBottom="true"
android:src="@mipmap/ic_launcher"/>以下是B activity 的xml:
<ImageView
android:id="@+id/second_image"
android:layout_width="200dp"
android:layout_height="200dp"
android:src="@mipmap/ic_launcher"
android:transitionName="name"
android:layout_centerHorizontal="true"/>
<ImageView
android:id="@+id/second_right"
android:layout_width="200dp"
android:layout_height="200dp"
android:src="@mipmap/ic_launcher"
android:transitionName="name_one"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"/>二、在java代码中,跳转页面的时候
Intent intent = new Intent(this, SecondActivity.class);
/**
* 共享一个元素的时候
*
* 第一个参数 activity
* 第二个参数 View sharedElement 共享的元素
* 第三个参数 sharedElementName 在xml中指定的共享元素的名字
*/
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(this, v, "name");
// 如果版本高于16 进行页面跳转 添加场景转换动画
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
startActivity(intent,optionsCompat.toBundle());
}else{
// 低于16 正常启动页面
startActivity(intent);
} /**
* 共享多个元素的时候
*
*
*/
Pair pair = new Pair(mImage,"name");
Pair pairOne = new Pair(mLeftImage, "name_one");
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(this,pair,pairOne);
本文详细介绍如何在Android应用中实现共享元素动画,通过设置View的transitionName属性并使用makeSceneTransitionAnimation方法实现页面间的平滑过渡。
6612

被折叠的 条评论
为什么被折叠?



