Подтвердить что ты не робот

Скрыть/показать fab с анимацией масштаба

Я использую пользовательское floactmenu. Мне нужно реализовать масштабную анимацию на кнопке show/hide menu, как здесь поведение кнопки плавающего действия

Есть ли способ сделать это?

4b9b3361

Ответ 1

Вы можете использовать эти масштабные анимации для кнопки 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>

Ответ 2

В редакторе 22.2.1 библиотеки поддержки дизайна добавлены методы hide() и show() в класс FloatingActionButton, поэтому вы можете использовать их с этого момента.

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

Вы можете применить к нему свою собственную анимацию. Для получения дополнительной информации проверьте это.

Ответ 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>