Библиотека анимации для Android!
Анимация нескольких виджетов одним методом
ViewAnimator
.animate(image)
.translationY(-1000, 0)
.alpha(0, 1)
.andAnimate(text)
.dp().translationX(-20, 0)
.decelerate()
.duration(2000)
.thenAnimate(image)
.scale(1f, 0.5f, 1f)
.accelerate()
.duration(1000)
.start();
Без использования ViewAnimator
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.playTogether(
ObjectAnimator.ofFloat(image, "translationY", -1000, 0),
ObjectAnimator.ofFloat(image, "alpha", 0, 1),
ObjectAnimator.ofFloat(text, "translationX", -200, 0)
);
animatorSet.setInterpolator(new DecelerateInterpolator());
animatorSet.setDuration(2000);
animatorSet.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
AnimatorSet animatorSet2 = new AnimatorSet();
animatorSet2.playTogether(
ObjectAnimator.ofFloat(image, "scaleX", 1f, 0.5f, 1f),
ObjectAnimator.ofFloat(image, "scaleY", 1f, 0.5f, 1f)
);
animatorSet2.setInterpolator(new AccelerateInterpolator());
animatorSet2.setDuration(1000);
animatorSet2.start();
}
});
animatorSet.start();
Добавление одной и той же анимации на несколько виджетов
ViewAnimator
.animate(image, text)
.scale(0, 1)
.start();
```Добавление слушателей событий
```java
ViewAnimator
.animate(image)
.scale(0,1)
.onStart(() -> {})
.onStop(() -> {})
.start();
Используйте значения DP
ViewAnimator
.animate(image)
.dp().translationY(-200, 0)
.start();
Анимация высоты / ширины
ViewAnimator
.animate(view)
.waitForHeight() //ожидание до получения уведомления от ViewTreeObserver
.dp().width(100,200)
.dp().height(50,100)
.start();
Цветовые анимации
ViewAnimator
.animate(view)
.textColor(Color.BLACK, Color.GREEN)
.backgroundColor(Color.WHITE, Color.BLACK)
.start();
Анимация вращения
ViewAnimator
.animate(view)
.rotation(360)
.start();
Пользовательские анимации
ViewAnimator
.animate(text)
.custom(new AnimationListener.Update<TextView>() {
@Override public void update(TextView view, float value) {
view.setText(String.format("%.02f", value));
}
}, 0, 1)
.start();
Отмена анимаций
ViewAnimator viewAnimator = ViewAnimator
.animate(view)
.rotation(360)
.start();
viewAnimator.cancel();
Улучшенные анимации (Спасибо AndroidViewAnimations и NiftyDialogEffects)
.shake().interpolator(new LinearInterpolator())
.bounceIn().interpolator(new BounceInterpolator())
.flash().repeatCount(4)
.flipHorizontal()
.wave().duration(5000)
.tada()
.pulse()
.standUp()
.swing()
.wobble();
...
Анимации по пути (Вдохновение от http://blog.csdn.net/tianjian4592/article/details/47067161)
final int[] START_POINT = new int[]{ 300, 270 };
final int[] BOTTOM_POINT = new int[]{ 300, 400 };
final int[] LEFT_CONTROL_POINT = new int[]{ 450, 200 };
final int[] RIGHT_CONTROL_POINT = new int[]{ 150, 200 };
Path path = new Path();
path.moveTo(START_POINT[0], START_POINT[1]);
path.quadTo(RIGHT_CONTROL_POINT[0], RIGHT_CONTROL_POINT[1], BOTTOM_POINT[0], BOTTOM_POINT[1]);
path.quadTo(LEFT_CONTROL_POINT[0], LEFT_CONTROL_POINT[1], START_POINT[0], START_POINT[1]);
path.close();
ViewAnimator.animate(view).path(path).repeatCount(-1).start();
```# Скачать
<a href='https://ko-fi.com/A160LCC' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://az743702.vo.msecnd.net/cdn/kofi1.png?v=0' border='0' alt='Поддержите меня кофе на ko-fi.com' /></a> Добавьте в свой **build.gradle**
[](https://bintray.com/florent37/maven/ViewAnimator/_latestVersion)
```groovy
implementation 'com.github.florent37:viewanimator:1.1.0'
Ищем участников, смело форкайте!
Автор: Florent Champigny
Конtributor: 李玉江(liyujiang)
Файлы Платформы Мото: https://www.fiches-plateau-moto.fr/
Copyright 2015 florent37, Inc.
Разрешено согласно лицензии Apache, версия 2.0 ("Лицензия").
Вы можете использовать этот файл только в соответствии с Лицензией.
Вы можете получить копию Лицензии по адресу:
http://www.apache.org/licenses/LICENSE-2.0 В случае отсутствия требований действующего закона или письменного соглашения,
программное обеспечение, распространяемое в рамках Лицензии, предоставляется на условиях "КАК ЕСТЬ".
Без гарантий или условий какого-либо характера, явных или подразумевающихся.
См. Лицензию для конкретного языка, регламентирующего права и
ограничения в рамках Лицензии.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )