自定义活动共享转换

时间:2017-02-16 13:58:48

标签: android android-transitions shared-element-transition

我有两项活动:AB。两者都有ViewPager图像。

使用" current"进行共享活动转换图像作为共享元素。例如,如果用户滚动到第三个图像,则共享元素名称为image_2

要执行转换,我只需调用:

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

这完美无缺。

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

我如何实现这一目标?

1 个答案:

答案 0 :(得分: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.

你去了,我希望这有帮助。