将活动A片段中的图像转换为Android中活动B的片段

时间:2016-03-10 03:22:59

标签: android android-fragments xamarin android-5.0-lollipop android-transitions

我一直在关注这些指南[12],以便更多地了解Android中的活动和片段转换和动画。

我的方案似乎与给出的所有三个示例都不同,因为我在<ImageView>的片段中有HomePageActivity,而HomePageFragment中的ImageView的OnClick加载了DetailActivityDetailFragment在顶部加载<ImageView>

如何将第一个<ImageView>的平滑过渡动画提供给第二个?

我正在使用Xamarin for .NET,但如果提供的话,我可以遵循Java逻辑。

HomePageFragment.cs (我尝试了几件不同的事情)

var intent = new Intent(this.Activity, typeof(DetailActivity));
intent.PutExtra("page", JsonConvert.SerializeObject(page));
// .. test
SharedElementReturnTransition = TransitionInflater.From(this.Activity).InflateTransition(Resource.Transition.change_image_trans);
ExitTransition = TransitionInflater.From(this.Activity).InflateTransition(Resource.Transition.fade_trans);
// .. end test
//var options = ActivityOptionsCompat.MakeSceneTransitionAnimation(this.Activity, p1);
this.Activity.StartActivity(intent/*, options.ToBundle()*/);

DetailActivity.cs

var frag = new PageDetailFragment();
if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
{
    frag.SharedElementEnterTransition = TransitionInflater.From(this).InflateTransition(Resource.Transition.change_image_trans);
    frag.EnterTransition = TransitionInflater.From(this).InflateTransition(Resource.Transition.fade_trans);
}

frag.Arguments = Intent.Extras; // pass arguments across
SupportFragmentManager.BeginTransaction()
    .Replace(Resource.Id.content_frame, frag)
    .Commit();

摘录 home_tile_item.axml (通过RecyclerView重复)

<ImageView
        android:id="@+id/imageTile"
        android:transitionName="topImageTransition"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:adjustViewBounds="true"
        android:scaleType="fitCenter" />

摘录 page_detail_fragment.axml

<ImageView
            android:id="@+id/top_image"
            android:transitionName="topImageTransition"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:maxHeight="400dp"
            android:adjustViewBounds="true"
            android:scaleType="fitCenter" />

此外,top_image的背景由Universal Image Loader提供,在某些情况下可能不会加载发送到imageTile的相同URL。另外,这样可以吗?

0 个答案:

没有答案