python - 在 Kivy 中使用 Gif 徽标加载屏幕
解决方案
您可以通过以下代码实现所需的输出
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
from kivy.clock import Clock
from kivy.uix.screenmanager import ScreenManager, Screen, WipeTransition, FadeTransition, NoTransition
from kivy.uix.floatlayout import FloatLayout
Builder.load_string("""
<FirstScreen>:
orientation: "vertical"
Image:
id: gif
source: 'load.gif'
pos: self.pos
size_hint: None, None
size: root.size
allow_stretch: True
keep_ratio: False
anim_delay: -1
anim_loop: 1
<SecondScreen>:
orientation: "vertical"
Label:
text:"Second Screen"
""")
class FirstScreen(Screen, FloatLayout):
secs = 0
def __init__(self, **kwargs):
super(FirstScreen, self).__init__(**kwargs)
self.orientation = "vertical"
Clock.schedule_interval(self.update_time, 1)
def update_time(self, sec):
self.secs = self.secs+1
''' 30 seconds'''
if self.secs == 30:
self.manager.current = 'second'
def on_enter(self):
self.ids.gif.anim_delay = 0.10
class SecondScreen(Screen, FloatLayout):
def __init__(self, **kwargs):
super(SecondScreen, self).__init__(**kwargs)
self.orientation = "vertical"
class ExampleApp(App):
def build(self):
sm = ScreenManager(transition=NoTransition())
sm.add_widget(FirstScreen(name='first'))
sm.add_widget(SecondScreen(name='second'))
return sm
if __name__ == "__main__":
ExampleApp().run()
用于anim_delay
延迟动画
参考检查如下:
https://kivy.org/doc/stable/api-kivy.clock.html
推荐阅读
- flow-project - 用其他东西替换汽车的图像
- java - 在 spark-shell 中创建新的 spark 上下文时,Spark Wordcount 错误(词汇量应大于 0)
- python - Python 自定义两个列表映射
- java - 使用 AngularJs 和 Java 在 SQL 中存储图像?
- ruby - 有没有办法在 Ruby 中使用带有任何方法的 while 循环来执行冒泡排序算法?
- python - Google VM (Linux) 上的 Pytorch 无法识别 GPU
- java - 在gradle多项目中,如何构建单个jar并将其发布到maven?
- pyspark - 为每个元素流水线化的 RDD 分配唯一的键值
- broadleaf-commerce - Broadleaf Commerce:没有“结构化内容”管理菜单项
- python - 从 Python 调用后,从 Batch 中获取 ERRORLEVEL 的值(或返回码)