I'm new to kivy, but I really stuck on this. Is there any way to have a Pulsing background on a canvas similar to this effect in CSS:
https://codepen.io/LukeAskew/pen/gabgom
body {
background-color: #222;
animation-name: color;
animation-duration: 2s;
animation-iteration-count: infinite;
}
@keyframes color {
0% {
background-color: #222;
}
50% {
background-color: #4285f4;
}
100 {
background-color: #222;
}
}
Is it even possible to do something like this using kivy?
You can use kivy.Animation
to animate the background color:
from kivy.animation import Animation
from kivy.app import App
from kivy.clock import Clock
from kivy.lang import Builder
from kivy.properties import ObjectProperty
from kivy.uix.widget import Widget
class Pulser(Widget):
bg_color = ObjectProperty([1, 1, 1, 1])
def __init__(self, **kwargs):
super(Pulser, self).__init__(**kwargs)
Clock.schedule_once(self.start_pulsing, 2)
def start_pulsing(self, *args):
anim = Animation(bg_color=[1,0,0,1]) + Animation(bg_color=[1,1,1,1])
anim.repeat = True
anim.start(self)
theRoot = Builder.load_string('''
Pulser:
canvas:
Color:
rgba: self.bg_color
Rectangle:
pos: self.pos
size: self.size
''')
class PulserApp(App):
def build(self):
return theRoot
if __name__ == "__main__":
PulserApp().run()