欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android技术-SharedElement Transition

程序员文章站 2024-03-24 10:42:46
...

简介

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 的切换中是如何动画变化的。取决于每个共享元素的位置、大小以及外观。

转载于:https://www.jianshu.com/p/76e9930adf0d