如何使用在 kivy 中作为按钮按下时播放的动画 gif?
How can I use an animated gif that will play when pressed as a button in kivy?
我在 kivy 中有这个切换按钮,我希望它在按下时动画(这是一个开机按钮 gif)但没有循环。我似乎找不到任何关于此的有用信息。感谢任何帮助,谢谢!
在按钮中使用 kivy.uix.image
的实例,您可以执行以下操作:
启动时禁用动画anim_delay = -1
。
指定要播放的循环次数
当按钮被按下时,给anim_delay
赋一个正值并使用[=11使用的kivy.core.image
实例的anim_reset
方法重新开始动画=] 以包含图像。
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
Builder.load_string("""
<ExampleApp>:
orientation: "vertical"
Button:
text: ""
on_press: gif.anim_delay = 0.10
on_press: gif._coreimage.anim_reset(True)
Image:
id: gif
source: 'img.gif'
center: self.parent.center
size: 500, 500
allow_stretch: True
anim_delay: -1
anim_loop: 1
""")
class ExampleApp(App, BoxLayout):
def build(self):
return self
if __name__ == "__main__":
ExampleApp().run()
我在 kivy 中有这个切换按钮,我希望它在按下时动画(这是一个开机按钮 gif)但没有循环。我似乎找不到任何关于此的有用信息。感谢任何帮助,谢谢!
在按钮中使用 kivy.uix.image
的实例,您可以执行以下操作:
启动时禁用动画
anim_delay = -1
。- 指定要播放的循环次数
当按钮被按下时,给
anim_delay
赋一个正值并使用[=11使用的kivy.core.image
实例的anim_reset
方法重新开始动画=] 以包含图像。
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
Builder.load_string("""
<ExampleApp>:
orientation: "vertical"
Button:
text: ""
on_press: gif.anim_delay = 0.10
on_press: gif._coreimage.anim_reset(True)
Image:
id: gif
source: 'img.gif'
center: self.parent.center
size: 500, 500
allow_stretch: True
anim_delay: -1
anim_loop: 1
""")
class ExampleApp(App, BoxLayout):
def build(self):
return self
if __name__ == "__main__":
ExampleApp().run()