Android animation libraries have become increasingly popular in recent years, as developers look for ways to make their apps stand out from the competition. Animation can be used to create stunning visuals, as well as to provide a more engaging user experience.
However, it is kind of hard to implement animations in native Android with either Kotlin or Java. These animation libraries for Android will help you make this task more comfortable.
Table of Contents
Lottie

Lottie can render After Effects animations natively on Android and iOS, Web, and React Native. It parses Adobe After Effects animations exported as JSON with Bodymovin and renders them natively on mobile.
Read also: 8 Best Flutter Animation Libraries
AndroidViewAnimations

This library is a collection of useful animation views. It supports lots of animation types, including attention, special (hinge, roll, landing, etc..), bounce, fade, flip, rotate, slide, and zoom.
You can start an animation on a view with a line of code
YoYo.with(Techniques.Tada) .duration(1000) .repeat(20) .playOn(findViewById(R.id.my_view));
Transition Everywhere
Transition Everywhere is a set of extra Transitions on top of the AndroidX Transitions library.
This framework automatically animates layout changes caused by the state of your child views. It supports new animation chaining while the old one is still running.
TransitionManager.beginDelayedTransition(findViewById(R.id.my_view_container));
Aphid FlipView

This library is a view that allows card-flipping animation as Flipboard does. It supports horizontal flipping, an event listener to get notified when flipping finishes, content reloading when flipping, and a different bitmap format for animation.
FragmentTransactionExtended

FragmentTransactionExtended makes switching fragments no longer boring. It is a plugin that provides a set of custom animations between fragments.
Supported animation types:
SCALEX
SCALEY
SCALEXY
FADE
FLIP_HORIZONTAL
FLIP_VERTICAL
SLIDE_VERTICAL
SLIDE_HORIZONTAL
SLIDE_HORIZONTAL_PUSH_TOP
SLIDE_VERTICAL_PUSH_LEFT
GLIDE
SLIDING
STACK
CUBE
ROTATE_DOWN
ROTATE_UP
ACCORDION
TABLE_HORIZONTAL
TABLE_VERTICAL
ZOOM_FROM_LEFT_CORNER
ZOOM_FROM_RIGHT_CORNER
ZOOM_SLIDE_HORIZONTAL
ZOOM_SLIDE_VERTICAL
FragmentTransactionExtended fte = new FragmentTransactionExtended(context, fragmentTransaction, firstFragment, secondFragment, containerID); FragmentManager fm = getFragmentManager(); FragmentTransaction fragmentTransaction = fm.beginTransaction(); FragmentTransactionExtended fte = new FragmentTransactionExtended(this, fragmentTransaction, firstFragment, secondFragment, R.id.fragment_place); fte.addTransition(FragmentTransactionExtended.GLIDE); fte.commit();
EasyAndroidAnimations

With 50+ built-in animations, EasyAndroidAnimations is designed to help developers create view animations in an Android app easier. It can create many complex animation effects with one or two lines of code.
BounceAnimation(yourView) .setBounceDistance(100) .setBounces(10) .setDuration(1000) .animate();
InterfaceInteraction

InterfaceInteraction library is an interesting animation library. It can capture any interface (screen or view) and throws its UI elements over under the influence of gravity which depends on the device’s accelerometer data. Those views then move from side to side obliquely.
KenBurnsView
It is an extension to ImageView and adds Ken Burns effect (a type of panning and zooming effect) to the view.
Features
- Control: Duration and pause/resume state can be changed easily. It supports events like onTransitionStart() and onTransitionEnd() for developers to control the effect better.
- Highly extensible: Options like rectangles to be zoomed and panned can be set.
- Libs friendly: This is a direct extension of ImageView so it seamlessly works out of the box with your favorite image loader library.
- Easy to use: The effect can be done by just replacing ImageView view in your XML layout files by com.flaviofaria.kenburnsview.KenBurnsView one.
ViewRevealAnimator
The library allows you to create a smooth animated transition between views, hence revealing the animator.
mViewAnimator.showNext(); mViewAnimator.showPrevious();