Android共享元素转换不起作用

时间:2018-04-26 07:50:04

标签: android shared-element-transition

我有2个活动,每个都有一个ImageView.First有一个图像,点击后应该转移魔法,同时移动到下一个活动。它转到下一个活动,但对于一些奇怪的理由过渡不起作用。

Activity1屏幕截图:

enter image description here

Activity2截图

enter image description here

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>

2 个答案:

答案 0 :(得分:1)

您没有在actvity2.xml中为ImageView设置图像

在actvity2.xml的ImageView中添加:

android:background="@drawable/th"

答案 1 :(得分:0)

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

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

另请查看官方Android文档: Start an activity using an animation