Xamarin Android ImageView 转换

Xamarin Android ImageView Transition

我正在尝试将 ImageView 从片段内的 RecyclerView 中的项目转换为 Activity。我在

中声明了以下内容

styles.xml

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

<!-- specify enter and exit transitions -->
<!-- options are: explode, slide, fade -->
<item name="android:windowEnterTransition">@transition/change_image_transform</item>
<item name="android:windowExitTransition">@transition/change_image_transform</item>

<!-- specify shared element transitions -->
<item name="android:windowSharedElementEnterTransition">
  @transition/change_image_transform
</item>
<item name="android:windowSharedElementExitTransition">
  @transition/change_image_transform
</item>

然后在我的

Recyclerview Adapter

我开始 activity 使用

if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Lollipop)
{ 
    ActivityOptionsCompat options = ActivityOptionsCompat.MakeSceneTransitionAnimation((Activity)Context, pec.View, "profile");
    Context.StartActivity(intent, options.ToBundle());
}

我已经用

定义了两个 ImageView

transitionName="profile"

还有一个

transition/change_image_transform.xml

看起来像

<?xml version="1.0" encoding="utf-8" ?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
  <changeImageTransform/>
</transitionSet>

没有错误,只是我在 recyclerview 中的项目和 activity 之间没有发生转换。

如果您使用 MakeSceneTransitionAnimation,则不需要在 xml 文件中设计过渡。只需设置 <item name="android:windowActivityTransitions">true</item> 就足够了。

当您进行图像视图转换时,您应该确保转换名称相同。

我有一个demo它应该对你有帮助,视图从 MainActivity 到 Activity1 的转换。 可以参考项目,找到解决方案。