隐藏/显示带有比例动画的工厂

Posted

技术标签:

【中文标题】隐藏/显示带有比例动画的工厂【英文标题】:hide/show fab with scale animation 【发布时间】:2016-04-05 20:35:58 【问题描述】:

我正在使用自定义浮动操作菜单。我需要像这里一样在显示/隐藏菜单按钮上实现缩放动画 floating action button behaviour

有什么办法吗?

【问题讨论】:

使用设计库提供的 fab.show() 和 fab.hide() 方法。另外你可能想检查this 它不是 android fab 库它的自定义 fab 菜单 here 当框架为你提供这个控件时,你为什么要使用库? ***.com/a/30953215/1318946 【参考方案1】:

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

FloatingActionButton mFab;
mFab.hide();
mFab.show();

您可以在其上应用您自己的动画。 欲了解更多信息check this. 有关 FAB 的更多信息,请查看official documentation.

【讨论】:

链接google的东西很可笑,我们需要例子【参考方案2】:

您可以将这些缩放动画用于 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>

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>

【讨论】:

我把这个放在哪里,我如何应用它? 就像 Anuj 说的:FloatingActionButton fab = this.findViewById( ... ); Animation myAnim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.scale_up); fab.startAnimation(myAnim);【参考方案3】:

在您的自定义视图上加载这些动画。不要忘记将轴心点设置为 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>

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>

【讨论】:

以上是关于隐藏/显示带有比例动画的工厂的主要内容,如果未能解决你的问题,请参考以下文章

单击时隐藏和显示 div,带有绝对位置的动画,并在隐藏时将其删除

如何在滚动时隐藏并显示带有动画效果的标题视图

如何使用 React-Transition-Group 显示和隐藏带有动画的模态/对话框?

在 react-native 中隐藏和显示带有动画的 createBottomTabNavigator 选项卡栏

我正在使用带有 WebView 的 LinearProgressIndicator 来显示网页渲染进度,当进度动画达到 100 时如何隐藏它?

如何在 iOS 7 中隐藏带有动画的状态栏?