Python | Animation in Kivy

Kivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, Linux and Windows, etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications.

Animation:

Animation and AnimationTransition are used to animate Widget properties. You must specify at least a property name and target value. To use Animation, follow these steps:

  • Setup an Animation object
  • Use the Animation object on a Widget

To use animation you must have to import:
from kivy.animation import Animation



Basic Approaches: 

1) import kivy
2) import kivyApp
3) import Button
4) import Animation
5) set kivy version (optional)
6) Create the App class
7) Define animation
8) Add animations
9) Run the App

Implementation of the Approach:

filter_none

edit
close

play_arrow

link
brightness_4
code

# Widget animation in kivy
  
  
# import kivy module 
import kivy 
    
# this restricts the kivy version i.e 
# below this kivy version you cannot 
# use the app or software 
kivy.require("1.9.1"
    
# base Class of your App inherits from the App class. 
# app:always refers to the instance of your application 
from kivy.app import App 
  
# To work with Animation you must have to import it
from kivy.animation import Animation
  
# The Button is a Label with associated
# actions that are triggered when the button
# is pressed (or released after a click/touch). 
from kivy.uix.button import Button
  
# Create the App class
class TestApp(App):
  
   # Defining the function in which animations are added
     
    def animate(self, instance):
        # create an animation object. This object could be stored
        # and reused each call or reused across different widgets.
        # += is a sequential step, while &= is in parallel
        animation = Animation(pos =(100, 100), t ='out_bounce')
        animation += Animation(pos =(200, 100), t ='out_bounce')
        animation &= Animation(size =(500, 500))
        animation += Animation(size =(100, 50))
  
        # apply the animation on the button, passed in the "instance" argument
        # Notice that default 'click' animation (changing the button
        # color while the mouse is down) is unchanged.
        animation.start(instance)
  
    def build(self):
        # create a button, and  attach animate() 
        # method as a on_press handler
        button = Button(size_hint =(None, None), text ='plop',
                        on_press = self.animate)
        return button
  
# run the App
if __name__ == '__main__':
    TestApp().run()

chevron_right


Output:

When the Button as shown in the image when you click on it it shows the different animation.



My Personal Notes arrow_drop_up

Competative Programmer

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : ManasChhabra2



Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.