Top Related Projects
A curated list of awesome Android UI/UX libraries
Render After Effects animations natively on Android and iOS, Web, and React Native
A fluent Android animation library
A Java library that models spring dynamics and adds real world physics to your app.
Android Transition animations explanation with examples.
Quick Overview
AndroidViewAnimations is a popular Android library that provides a collection of pre-built animations for UI elements. It simplifies the process of adding engaging and smooth animations to Android applications, enhancing the overall user experience with minimal effort from developers.
Pros
- Easy to use with a simple and intuitive API
- Wide variety of pre-built animations available
- Supports chaining multiple animations for complex effects
- Lightweight and efficient, with minimal impact on app performance
Cons
- Limited customization options for advanced animation requirements
- Some animations may not be suitable for all UI designs
- Lack of recent updates or maintenance (last updated in 2017)
- May not fully support the latest Android versions or Material Design guidelines
Code Examples
- Basic usage to apply a bounce animation to a view:
YoYo.with(Techniques.Bounce)
.duration(700)
.repeat(2)
.playOn(findViewById(R.id.textView));
- Chaining multiple animations:
YoYo.with(Techniques.Bounce)
.duration(1000)
.withListener(new Animator.AnimatorListener() {
@Override
public void onAnimationEnd(Animator animation) {
YoYo.with(Techniques.FadeOut)
.duration(500)
.playOn(findViewById(R.id.textView));
}
// Implement other listener methods
})
.playOn(findViewById(R.id.textView));
- Using a custom animation:
YoYo.with(new BaseViewAnimator() {
@Override
protected void prepare(View target) {
getAnimatorAgent().playTogether(
ObjectAnimator.ofFloat(target, "translationX", 0, 25, -25, 25, -25, 15, -15, 6, -6, 0),
ObjectAnimator.ofFloat(target, "translationY", 0, -25, 25, -25, 25, -15, 15, -6, 6, 0)
);
}
})
.duration(1000)
.playOn(findViewById(R.id.textView));
Getting Started
- Add the dependency to your
build.gradlefile:
dependencies {
implementation 'com.daimajia.androidanimations:library:2.3@aar'
}
- Apply an animation in your Activity or Fragment:
import com.daimajia.androidanimations.library.YoYo;
// In your onCreate() or other appropriate method
YoYo.with(Techniques.FadeIn)
.duration(1000)
.playOn(findViewById(R.id.yourView));
Competitor Comparisons
A curated list of awesome Android UI/UX libraries
Pros of awesome-android-ui
- Comprehensive collection of UI libraries and components
- Regularly updated with new and trending UI resources
- Categorized for easy navigation and discovery
Cons of awesome-android-ui
- Not a standalone library, requires integration of multiple dependencies
- May lead to inconsistency in UI design if using various libraries
Code comparison
AndroidViewAnimations:
YoYo.with(Techniques.Tada)
.duration(700)
.repeat(5)
.playOn(findViewById(R.id.edit_area));
awesome-android-ui (using a library from the collection, e.g., Material-Animations):
TransitionManager.beginDelayedTransition(container);
view.setVisibility(visible ? View.VISIBLE : View.GONE);
Summary
AndroidViewAnimations is a focused library for view animations, while awesome-android-ui is a curated list of various UI libraries and components. AndroidViewAnimations provides a simple API for applying pre-defined animations, whereas awesome-android-ui offers a wide range of UI resources that developers can choose from based on their specific needs.
The choice between these repositories depends on the project requirements. If you need a quick and easy way to add animations to your views, AndroidViewAnimations might be more suitable. However, if you're looking for a comprehensive collection of UI resources and are willing to integrate multiple libraries, awesome-android-ui provides a broader selection of options for enhancing your Android app's user interface.
Render After Effects animations natively on Android and iOS, Web, and React Native
Pros of Lottie-Android
- Supports complex, high-quality animations created in Adobe After Effects
- Renders animations natively on device, reducing file size and improving performance
- Extensive customization options, including dynamic property manipulation
Cons of Lottie-Android
- Steeper learning curve, especially for designers unfamiliar with After Effects
- Requires additional tools and workflow (Adobe After Effects, Bodymovin plugin)
- Potentially higher initial development time for complex animations
Code Comparison
AndroidViewAnimations:
YoYo.with(Techniques.Tada)
.duration(700)
.repeat(5)
.playOn(findViewById(R.id.button));
Lottie-Android:
LottieAnimationView animationView = findViewById(R.id.animation_view);
animationView.setAnimation(R.raw.button_animation);
animationView.playAnimation();
Summary
AndroidViewAnimations offers simple, pre-defined animations with minimal setup, making it ideal for quick implementations. Lottie-Android provides more complex, customizable animations but requires additional tools and expertise. Choose based on your project's animation requirements and development resources.
A fluent Android animation library
Pros of ViewAnimator
- More flexible and customizable animation chaining
- Supports both View and ViewProperty animations
- Easier to create complex animation sequences
Cons of ViewAnimator
- Slightly more verbose syntax for simple animations
- Less extensive pre-built animation library
Code Comparison
ViewAnimator:
ViewAnimator
.animate(view)
.scale(0, 1)
.alpha(0, 1)
.onStart { }
.onStop { }
.start()
AndroidViewAnimations:
YoYo.with(Techniques.FadeIn)
.duration(700)
.playOn(view);
Key Differences
- ViewAnimator offers a more fluent API for chaining animations
- AndroidViewAnimations provides a larger set of pre-defined animations
- ViewAnimator supports both View and ViewProperty animations, while AndroidViewAnimations focuses on View animations
Use Cases
- ViewAnimator: Complex, custom animation sequences
- AndroidViewAnimations: Quick implementation of common animations
Community and Maintenance
- Both projects are well-maintained and have active communities
- AndroidViewAnimations has a larger user base and more stars on GitHub
- ViewAnimator has more recent updates and active development
Integration
Both libraries are easy to integrate into Android projects, with similar setup processes through Gradle dependencies.
A Java library that models spring dynamics and adds real world physics to your app.
Pros of Rebound
- More flexible and customizable spring animations
- Can be used for non-UI animations and physics simulations
- Supports both Android and iOS platforms
Cons of Rebound
- Steeper learning curve due to its lower-level API
- Requires more code to implement simple animations
- Less out-of-the-box animations compared to AndroidViewAnimations
Code Comparison
AndroidViewAnimations:
YoYo.with(Techniques.Bounce)
.duration(700)
.repeat(5)
.playOn(findViewById(R.id.animation_target));
Rebound:
Spring spring = springSystem.createSpring();
spring.addListener(new SimpleSpringListener() {
@Override
public void onSpringUpdate(Spring spring) {
float value = (float) spring.getCurrentValue();
animationTarget.setScaleX(value);
animationTarget.setScaleY(value);
}
});
spring.setEndValue(1);
AndroidViewAnimations offers a more concise and straightforward approach for common animations, while Rebound provides greater control and flexibility at the cost of more verbose code. AndroidViewAnimations is better suited for quick, pre-defined animations, whereas Rebound excels in creating custom, physics-based animations across multiple platforms.
Android Transition animations explanation with examples.
Pros of Material-Animations
- Focuses on Material Design animations and transitions
- Provides more complex, scene-based animations
- Includes detailed examples and explanations for each animation type
Cons of Material-Animations
- Limited to Material Design-specific animations
- Requires more setup and configuration for each animation
- Less suitable for simple, quick animations on individual views
Code Comparison
Material-Animations:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_transition);
setupWindowAnimations();
}
AndroidViewAnimations:
YoYo.with(Techniques.Tada)
.duration(700)
.repeat(5)
.playOn(findViewById(R.id.edit_area));
Material-Animations focuses on scene transitions and complex animations, requiring more setup but offering powerful Material Design-specific effects. AndroidViewAnimations provides a simpler API for quick, individual view animations with a wide variety of pre-defined effects.
Material-Animations is better suited for apps strictly following Material Design guidelines and requiring intricate transitions between screens or components. AndroidViewAnimations is more versatile for adding simple, eye-catching animations to individual views across various app styles.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Android View Animations 
One day, I saw an iOS library, which is a view shaker, it's very beautiful. I think Android also need one, and should be better.
So, I started to collect animation effects... and in two days, this project born.
Demo

Usage
Since Version 2.0, NineOldAndroids has been removed. Thanks Jake Wharton.
For making animations more real, I created another project named Android Easing Functions which is an implementations of easing functions on Android. So, we need to dependent that project.
Step 1
Gradle
dependencies {
implementation 'com.daimajia.androidanimations:library:2.4@aar'
}
Maven
<dependency>
<groupId>com.daimajia.androidanimation</groupId>
<artifactId>library</artifactId>
<version>2.4</version>
</dependency>
Step 2
Just like play Yo-yo.
YoYo.with(Techniques.Tada)
.duration(700)
.repeat(5)
.playOn(findViewById(R.id.edit_area));
Effects
Attension
Flash, Pulse, RubberBand, Shake, Swing, Wobble, Bounce, Tada, StandUp, Wave
Special
Hinge, RollIn, RollOut,Landing,TakingOff,DropOut
Bounce
BounceIn, BounceInDown, BounceInLeft, BounceInRight, BounceInUp
Fade
FadeIn, FadeInUp, FadeInDown, FadeInLeft, FadeInRight
FadeOut, FadeOutDown, FadeOutLeft, FadeOutRight, FadeOutUp
Flip
FlipInX, FlipOutX, FlipOutY
Rotate
RotateIn, RotateInDownLeft, RotateInDownRight, RotateInUpLeft, RotateInUpRight
RotateOut, RotateOutDownLeft, RotateOutDownRight, RotateOutUpLeft, RotateOutUpRight
Slide
SlideInLeft, SlideInRight, SlideInUp, SlideInDown
SlideOutLeft, SlideOutRight, SlideOutUp, SlideOutDown
Zoom
ZoomIn, ZoomInDown, ZoomInLeft, ZoomInRight, ZoomInUp
ZoomOut, ZoomOutDown, ZoomOutLeft, ZoomOutRight, ZoomOutUp
Welcome contribute your amazing animation effect. :-D
Thanks
Why YoYo?
YoYo is a toy, with a lot of Techniques.
About me
(2013) A student in mainland China.
Welcome to offer me an internship. If you have any new idea about this project, feel free to contact me.
(2019) Five years later, now I become an investment associate in China.
Welcome to send your business plan to me. Maybe I would have a better understanding on your startup project than others. Trust me.
Top Related Projects
A curated list of awesome Android UI/UX libraries
Render After Effects animations natively on Android and iOS, Web, and React Native
A fluent Android animation library
A Java library that models spring dynamics and adds real world physics to your app.
Android Transition animations explanation with examples.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot