Kivy Gif动画经常运行

时间:2015-06-27 20:42:23

标签: python kivy gif animated-gif

我想制作一个带有gif动画的kivy程序,它运行一次然后停止。 我将anim_loop设置为1,但它一直在反复运行。 这是代码:

Root = Builder.load_string('''
  Image:
    source: 'streifen1.gif'
    size_hint_y: 1
    anim_loop: 1
''')


class TTT(App):
 def build(self):
    Window.clearcolor = (0, 0.5, 1, 1)# sets the backgroundcolor
    return Root #returnst the kv string and therefore the root widget`

1 个答案:

答案 0 :(得分:2)

anim_loop属性应该在Kivy 1.9.0中运行,如果您使用的是旧版本,则考虑升级。

还有另一种方式。您可以使用以下代码停止动画:

myimage._coreimage.anim_reset(False)

要在动画播放后停止动画,请观察texture曲线。加载每个帧后它将被更改。如果你的GIF有n帧,那么在第{n + 1}次调用on_texture方法后停止动画。

from kivy.app import App
from kivy.uix.image import Image

class MyImage(Image):
    frame_counter = 0
    frame_number = 2 # my example GIF had 2 frames

    def on_texture(self, instance, value):     
        if self.frame_counter == self.frame_number + 1:
            self._coreimage.anim_reset(False)
        self.frame_counter += 1


class MyApp(App):
    def build(self):
        return MyImage(source = "test.gif")

if __name__ == '__main__':
    MyApp().run()