如何复刻Google Authenticator应用中使用的FAB动画效果
你当前实现的动画从底部沿Y轴缩放,核心原因是android:pivotY属性设置为100%,这个参数定义了缩放动画的Y轴锚点位置,100%对应控件的底部边缘。
如果要实现从顶部向下展开的基础动画效果,修改后的XML代码如下:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <scale android:duration="100" android:fromXScale="1" android:fromYScale="0" android:pivotX="50%" android:pivotY="0%" android:toXScale="1.0" android:toYScale="1.0" /> </set>
仅需将android:pivotY的值修改为0%,就可以将锚点移动到控件顶部,动画会变为从顶部向下展开。
如果想要更自然的动效,可以调整插值器、增加透明度和位移动画,示例如下:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/overshoot_interpolator"> <scale android:duration="300" android:fromXScale="0.9" android:fromYScale="0" android:pivotX="50%" android:pivotY="0%" android:toXScale="1.0" android:toYScale="1.0" /> <alpha android:duration="250" android:fromAlpha="0.3" android:toAlpha="1" /> <translate android:duration="300" android:fromYDelta="-15dp" android:toYDelta="0dp" /> </set>
调整说明:
- 插值器改为
overshoot_interpolator可以增加轻微的回弹效果,动画更灵动 - 增加透明度动画避免初始阶段边缘生硬
- 增加位移动画模拟控件从上方滑入的效果,动效更流畅
内容的提问来源于stack exchange,提问作者24hg824g2g4gh
相关产品推荐
相关产品推荐

