使用自定义持续时间的ActivityOptionsCompat.makeSceneTransitionAnimation

7

我正在为API级别为20+的设备制作场景转换。它可以正常工作,但我想设置自定义持续时间来进行转换。这可行吗?

我的代码:

ActivityOptionsCompat options =

                ActivityOptionsCompat.makeSceneTransitionAnimation(this,
                        viewStart,
                        transitionName
                );

        ActivityCompat.startActivity(this, detailsIntent, options.toBundle());

你可以自定义转场 https://github.com/codepath/android_guides/wiki/Shared-Element-Activity-Transition - saeed
3个回答

13

您可以通过添加以下代码,在新启动的活动中设置所需的持续时间:

    ChangeBounds bounds = new ChangeBounds();
    bounds.setDuration(2000);
    getWindow().setSharedElementEnterTransition(bounds);

0
请阅读Saeed先生链接中的第5条。或者您可以尝试使用Java代码:
Window window = getWindow();
TransitionSet set = new TransitionSet();
set.addTransition(new ChangeImageTransform());
set.addTransition(new ChangeBounds());
set.setDuration(duration);
set.addListener(yourTransitionListener)
window.setSharedElementEnterTransition(set);

0

这是 Kotlin 中的一个简单的一行代码,只需将它放到你要启动的 Activity 的 onCreate() 中:window.sharedElementEnterTransition.duration = 300


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接