简介
shared Element Transition可以理解为一个View属于界面A又属于界面B,A/B的切换是通过动画实现的。
正文
使用步骤
步骤一
主题上设置windowContentTransitions
<style name="AppTheme" parent="Theme.AppCompat.Light">
m
</style>
步骤二
设置共享元素,Activity1
<ImageView
android:id="@+id/img_slide_share"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@drawable/circle_purple"
android:transitionName="share" />
<TextView
android:id="@+id/tv_share"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="12dp"
android:gravity="center_vertical"
android:text="Shared Elements"
android:transitionName="share_text" />
Activity2
<View
android:id="@+id/view_top"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@color/color_orange"
android:transitionName="share"></View>
步骤三
添加相应的跳转动画
mIntent.setClass(this, ShareElementsActivity.class);
ActivityOptions transitionActivityOptions = ActivityOptions.makeSceneTransitionAnimation(MainActivity.this
, Pair.create(findViewById(R.id.img_share), "share")
, Pair.create(findViewById(R.id.tv_share), "share_text"));
startActivity(mIntent, transitionActivityOptions.toBundle());
总结
元素共享式变换(shared element transition)决定了共享的view元素从一个Activity/Fragment 到另一个Activity/Fragment 的切换中是如何动画变化的。取决于每个共享元素的位置、大小以及外观。
网友评论