在Kivy中脉动背景色

时间:2019-02-08 18:36:30

标签: canvas background kivy pulse

我是新手,但是我真的坚持了。有什么办法可以在画布上具有类似于CSS中这种效果的Pulsing背景:

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;
  }
}

甚至可以用基维做类似的事情吗?

1 个答案:

答案 0 :(得分:1)

您可以使用kivy.Animation来设置背景颜色的动画:

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()