使用缩放动画隐藏/显示fab

Jos*_*phM 15 android material-design floating-action-button

我正在使用自定义的floatingactionmenu.我需要在显示/隐藏菜单按钮上实现缩放动画,就像这里的 浮动动作按钮行为一样

有没有办法做到这一点?

Anu*_*rma 72

设计支持库修订版22.2.1将hide()和show()方法添加到FloatingActionButton类中,因此您可以从现在开始使用这些方法.

FloatingActionButton mFab;
mFab.hide();
mFab.show();
Run Code Online (Sandbox Code Playgroud)

您可以在其上应用自己的动画.有关详细信息,请检查此
有关FAB的更多信息,请查看官方文档.

  • 链接谷歌的东西是荒谬的,我们需要例子 (3认同)

Max*_*Max 19

您可以将这些缩放动画用于fab按钮,它可以提供与设计lib fab按钮相同的效果.

scale_up.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <scale
        android:duration="100"
        android:fromXScale="0"
        android:fromYScale="0"
        android:pivotX="85%"
        android:pivotY="85%"
        android:toXScale="1.0"
        android:toYScale="1.0" />
</set>
Run Code Online (Sandbox Code Playgroud)

scale_down.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <scale
        android:duration="100"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:pivotX="85%"
        android:pivotY="85%"
        android:toXScale="0"
        android:toYScale="0" />
</set>
Run Code Online (Sandbox Code Playgroud)

  • 我把它放在哪里,我该如何应用呢? (10认同)
  • 就像Anuj所说的那样:`FloatingActionButton fab = this.findViewById(...); 动画myAnim = AnimationUtils.loadAnimation(MainActivity.this,R.anim.scale_up); fab.startAnimation(myAnim);` (2认同)

Cod*_*Rat 8

在自定义视图上加载这些动画.不要忘记将枢轴点设置为50%,将插补器设置为线性插补器.

scale_up.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <scale
        android:duration="100"
        android:fromXScale="0"
        android:fromYScale="0"
        android:interpolator="@android:anim/linear_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.0"
        android:toYScale="1.0" />
</set>
Run Code Online (Sandbox Code Playgroud)

scale_down.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <scale
        android:duration="100"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:interpolator="@android:anim/linear_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="0"
        android:toYScale="0" />
</set>
Run Code Online (Sandbox Code Playgroud)