根据材料设计指南 https://material.google.com/components/buttons-floating-action-button.html#buttons-floating-action-button-transitions“浮动操作按钮可以转变为包含所有操作的单张材料”。
我想在不使用第三方库的情况下创建以下动画。
首先,您需要将该动画切成小部分。
在这个例子中我可以推断出 3 个步骤:
- 点击事件时触发 FAB 上的波纹效果。
- 向左平移应用于 FAB。
- 应用于卡片的圆形显示动画。
所以你需要创建一个FAB(visible
)和一张卡片(invisible
)。 FAB 位于其初始位置,卡片位于其最后位置。在触发 FAB 上的涟漪效果(步骤 1)并再次在 FAB 上的移动事件结束时(步骤 2 结束),您只需关闭 FAB 并在卡片上启动 Reveal 动画(步骤 3) 。
要启动循环显示动画,只需调用ViewAnimationUtils.createCircularReveal
方法。传递你的卡片视图、X、Y 起始坐标、半径,就是这样!困难肯定是找到每个动画之间的最佳持续时间和开始/结束坐标,以使其尽可能平滑。
如果你愿意的话,你可以在这里看我的帖子https://stackoverflow.com/a/41957295/1053880 https://stackoverflow.com/a/41957295/1053880。我使用圆形显示动画来创建两个工具栏之间的切换。你的代码的某些部分将与我的类似(我最后也恢复了我的动画)。
GitHub 上的示例项目
https://github.com/fbourlieux/android-material-circular_reveal_animation https://github.com/fbourlieux/android-material-circular_reveal_animation
希望这有帮助!
François
有用的链接:
- 链接1:GitHub 上的 Circular-Reveal-Animation 项目 https://github.com/codepath/android_guides/wiki/Circular-Reveal-Animation
- Link2:像Whatsapp一样创建圆形显示动画和波纹效果 http://pulse7.net/android/android-create-circular-reveal-animation-and-ripple-effect-like-whatsapp/
- Link3:简单波纹+揭示+高程教程 http://trickyandroid.com/simple-ripple-reveal-elevation-tutorial/
- Link4:缩放、平移、旋转动画 https://developer.android.com/guide/topics/graphics/view-animation.html
- Link5:波纹动画 http://guides.codepath.com/android/ripple-animation
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)