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"
我有 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"