2017-02-16 85 views
1

我有两个活动:AB。两者都有图像的ViewPager。自定义活动共享转换

存在与“当前”图像共享元素的共享活动转换。例如,如果用户滚动到第三个图像,则共享元素名称为image_2

要执行的过渡只需要调用:

ActivityCompat.startActivityForResult(activity, intent, requestCode, 
     ActivityOptionsCompat.makeSceneTransitionAnimation(activity, sharedElements) 
      .toBundle()); 

这完美的作品。

我想为A(调用者活动)添加自定义退出转换。后者应该淡化另一种观点。

我该如何实现这个目标?

回答

0

您可以使用以下方法指定退出,重新输入,输入和返回转换。

getWindow().setEnterTransition(getEnterTransition()); 
getWindow().setReturnTransition(getReturnTransition()); 
getWindow().setExitTransition(getExitTransition()); 
getWindow().setReenterTransition(getReenterTransition()); 

当然,在你的情况下,你只需要设置退出转换。但我之所以包含这一点,是因为你可能想要设置从你的调用者活动重新输入转换。

要回答你的问题(淡出)您可以使用渐变过渡这样

@SuppressWarnings("NewApi") 
private Transition getExitTransition() { 
    Fade fadeOut = new Fade(Fade.OUT); 
    fadeOut.excludeTarget(android.R.id.navigationBarBackground, true); 
    fadeOut.excludeTarget(android.R.id.statusBarBackground, true); 
    fadeOut.setInterpolator(new FastOutLinearInInterpolator()); 
    fadeOut.setDuration(150); 
    return fadeOut; 
} 

你可能会注意到我排除的导航栏和状态栏,它在那里,以防止white blinking problem.

你去那里, 我希望这有帮助。

+0

我已经试过了。它不起作用。 – fran