Я использую пользовательское floactmenu. Мне нужно реализовать масштабную анимацию на кнопке show/hide menu, как здесь поведение кнопки плавающего действия
Есть ли способ сделать это?
Я использую пользовательское floactmenu. Мне нужно реализовать масштабную анимацию на кнопке show/hide menu, как здесь поведение кнопки плавающего действия
Есть ли способ сделать это?
Вы можете использовать эти масштабные анимации для кнопки 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>
В редакторе 22.2.1 библиотеки поддержки дизайна добавлены методы hide() и show() в класс FloatingActionButton
, поэтому вы можете использовать их с этого момента.
FloatingActionButton mFab;
mFab.hide();
mFab.show();
Вы можете применить к нему свою собственную анимацию. Для получения дополнительной информации проверьте это.
Загрузите эту анимацию в свое собственное представление. Не забудьте установить точку поворота на 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>