Android 自定义活动共享转换
我有两个活动:Android 自定义活动共享转换,android,android-transitions,shared-element-transition,Android,Android Transitions,Shared Element Transition,我有两个活动:A和B。两者都有一个图像浏览页面 有一个共享的活动转换,“当前”映像作为共享元素。例如,如果用户滚动到第三个图像,则共享元素名称为image\u 2 要执行转换,我只需调用: ActivityCompat.startActivityForResult(activity, intent, requestCode, ActivityOptionsCompat.makeSceneTransitionAnimation(activity, sharedElements)
A
和B
。两者都有一个图像浏览页面
有一个共享的活动转换,“当前”映像作为共享元素。例如,如果用户滚动到第三个图像,则共享元素名称为image\u 2
要执行转换,我只需调用:
ActivityCompat.startActivityForResult(activity, intent, requestCode,
ActivityOptionsCompat.makeSceneTransitionAnimation(activity, sharedElements)
.toBundle());
这很好用
我想为a
(调用方活动)添加自定义退出转换。后者应该淡出另一种观点
如何实现此目标?您可以使用以下方法指定退出、重新进入、进入和返回转换
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;
}
您可能会注意到我排除了导航栏和状态栏,它是用来防止
好了,我希望这有帮助。您可以使用以下方法指定退出、重新进入、进入和返回转换
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;
}
您可能会注意到我排除了导航栏和状态栏,它是用来防止
好了,我希望这有帮助