web-dev-qa-db-ja.com

スケールアニメーションでファブを非表示/表示

カスタムフローティングアクションメニューを使用しています。ここのように、メニューボタンの表示/非表示にスケールアニメーションを実装する必要があります フローティングアクションボタンの動作

これを行う方法はありますか?

17
JosephM

これらのスケールアニメーションをファブボタンに使用できます。これは、デザインlibファブボタンと同じ効果をもたらします。

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>
23
Max

設計サポートライブラリリビジョン22.2.1では、hide [)メソッドとshow()メソッドがFloatingActionButtonクラスに追加されたため、今後これらを使用できます。

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

独自のアニメーションを適用できます。詳細については これをチェックしてください。
FABの詳細については、 公式ドキュメントを確認してください。

75
Anuj Sharma

これらのアニメーションをカスタムビューにロードします。ピボットポイントを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>
8
CodingRat