如何将我的makeSceneTransitionAnimation变成圆形而不是矩形?

5

我目前正在尝试在我的FAB和另一个Activity之间创建一个圆形过渡。

根据文档中的理解,我应该以类似以下方式使用makeSceneTransitionAnimation:

public void onFabClicked(View v){
    try {
        Intent intent = new Intent(this, SearchActivity.class);
        ActivityOptions options = ActivityOptions
                .makeSceneTransitionAnimation(this, v, "reveal");
        startActivity(intent, options.toBundle());
    } catch (Exception e) {
        // makeSceneTransitionAnimation not supported, maybe a check of SDK level is enough to avoid catching an error?
        Intent intent = new Intent(this, SearchActivity.class);
        startActivity(intent);
        e.printStackTrace();
    }
}

很遗憾,当前动画在动画期间显示的是一个矩形。如何将其转换为我们在Lollipop中喜欢的美丽圆形揭示效果呢?谢谢。
编辑:我正在尝试实现这个效果(除了颜色应该是全屏的,但你明白我的意思..): enter image description here 实际上我得到的是: enter image description here

你的意思是fab在这两个活动之间共享,以矩形到圆形的方式展示?你能举一个你想要实现的动画(应用程序)的例子吗? - royB
FAB应该变成活动背景。我希望我添加的截图更好…… - Waza_Be
我写了一个类似的示例应用程序。你可以在这里查看它:(https://github.com/alexjlockwood/activity-transitions)。 - Alex Lockwood
此外,您真的需要发布更多的代码...我没有看到您在帖子中尝试实现圆形揭示的迹象。 - Alex Lockwood
在George Mount的博客上也有一些关于高级活动转换的有用博文。 - Alex Lockwood
你好,非常感谢您的回答。我确实从George的博客开始学习,但可能在处理XML时出了一些问题,导致一切都没有正确连接。我会再试一下的。 - Waza_Be
1个回答

3

好的,我以这段代码为例子:目前它可以正常运行:

saulmm在Github上的代码

但是…… 是的,这很简单且能够正常工作,但我认为这不是最有效的方法。 在您的布局中添加额外的视图并调整可见性可能并不是最佳方法。

尝试实现George Mount的解决方案时遇到了许多问题。 但是由于此解决方案是由Google Android UI Toolkit团队的软件工程师编写的,并由另一位Google工程师Alex提出建议,因此我想我应该花更多时间去尝试一下它,因为它不需要在我的布局中添加额外的视图…

第二个问题对我来说有些难度,但我会努力解决。

无论如何,问题已经解决。


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