Android 共享元素转换不起作用

Android shared element transition does not work

我有 2 个 Activities 每个都有一个 ImageView.First 一个有一个图像,点击后应该在移动到下一个时执行过渡魔法 activity.It到下一个 activity,但由于某些奇怪的原因,转换不起作用。

Activity1 截图:

活动2截图

Activity1.java:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP)
                {
                    Intent intent =new Intent(Activity1.this,Activity2.class);
                    ActivityOptionsCompat activityOptions=ActivityOptionsCompat.
                            makeSceneTransitionAnimation(Activity1.this,imageView,"shift");

                    ActivityCompat.startActivity(Activity1.this,intent,activityOptions.toBundle());
                }

activity1.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">
<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/img"
    android:layout_centerHorizontal="true"
    android:background="@drawable/th"
    android:transitionName="shift"/>
</RelativeLayout>

activity2.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/img1"
    android:layout_alignParentBottom="true"
    android:transitionName="shift"/>
</RelativeLayout>

为了使用元素转换,您必须将 windowActivityTransitions 属性添加到您的应用主题。

  <!-- enable window content transitions -->
  <item name="android:windowActivityTransitions">true</item>

另请参阅官方 Android 文档: Start an activity using an animation

您没有在 actvity2.xml

中为 ImageView 设置图像

在 actvity2.xml 的 ImageView 中添加:

android:background="@drawable/th"