Python 在Kivy中加载图像
我希望在布局的中心显示一个图像。我想不出来。有没有办法将图像显示在布局的中心,直到动画停止 这是我的密码Python 在Kivy中加载图像,python,python-3.x,kivy,kivy-language,Python,Python 3.x,Kivy,Kivy Language,我希望在布局的中心显示一个图像。我想不出来。有没有办法将图像显示在布局的中心,直到动画停止 这是我的密码 from kivy.app import App from kivy.lang import Builder from kivy.uix.floatlayout import FloatLayout from kivy.animation import Animation from kivy.properties import NumericProperty Builder.load_st
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.floatlayout import FloatLayout
from kivy.animation import Animation
from kivy.properties import NumericProperty
Builder.load_string('''
<Loading>:
canvas:
Rotate:
angle: root.angle
origin: self.center
Color:
rgb: .0, 0, -.1
Ellipse:
size: min(self.size), min(self.size)
pos: 0.5*self.size[0] - 0.5*min(self.size), 0.5*self.size[1] - 0.5*min(self.size)
Color:
rgb: .5, 0, 1
Ellipse:
size: 30, 30
pos: 0.5*root.size[0]+25, 0.8*root.size[1]-25
''')
class Loading(FloatLayout):
angle = NumericProperty(0)
def __init__(self, **kwargs):
super(Loading, self).__init__(**kwargs)
anim = Animation(angle = 1009, duration=2.5)
anim += Animation(angle = 1900, duration=2.5)
anim.repeat = True
anim.start(self)
def on_angle(self, item, angle):
if angle == 360:
item.angle = 0
class TestApp(App):
def build(self):
return Loading()
TestApp().run()
从kivy.app导入应用
从kivy.lang导入生成器
从kivy.uix.floatlayout导入floatlayout
从kivy.animation导入动画
从kivy.properties导入NumericProperty
Builder.load_字符串(“”)
:
画布:
轮换:
角度:root.angle
来源:自我中心
颜色:
rgb:.0,0,-.1
椭圆:
大小:最小值(自身大小),最小值(自身大小)
位置:0.5*self.size[0]-0.5*min(self.size),0.5*self.size[1]-0.5*min(self.size)
颜色:
rgb:.5、0、1
椭圆:
尺码:30,30
位置:0.5*root.size[0]+25,0.8*root.size[1]-25
''')
类加载(浮动布局):
角度=数值属性(0)
定义初始(自我,**kwargs):
超级(自加载)。\uuuuu初始化(**kwargs)
动画=动画(角度=1009,持续时间=2.5)
动画+=动画(角度=1900,持续时间=2.5)
anim.repeat=True
动画开始(自我)
def on_角度(自身、项目、角度):
如果角度==360:
item.angle=0
类TestApp(应用程序):
def生成(自):
返回加载()
TestApp().run()
我认为你的画布不应该像那样“松散”。将它放在一个小部件中,这将允许您使用Kivy的各种布局来安排事情。它还允许您在小部件上方插入图像,而无需使图像旋转
第二件事,使用rgba以便可以为背景指定透明度。下面的示例对我适用,只需将生成器字符串替换为:
"""<Loading>:
FloatLayout:
Image:
source: 'logo.png'
Widget:
canvas:
Rotate:
angle: root.angle
origin: self.center
Color:
rgba: 1, 1, 1, 0
Ellipse:
size: min(self.size), min(self.size)
pos: 0.5*self.size[0] - 0.5*min(self.size), 0.5*self.size[1] - 0.5*min(self.size)
Color:
rgba: .5, 0, 1, 1
Ellipse:
size: 30, 30
pos: 0.5*root.size[0]+25, 0.8*root.size[1]-25
Color:
rgba: 0.5, 0, 1"""
“”:
浮动布局:
图片:
来源:“logo.png”
小装置:
画布:
轮换:
角度:root.angle
来源:自我中心
颜色:
rgba:1,1,1,0
椭圆:
大小:最小值(自身大小),最小值(自身大小)
位置:0.5*self.size[0]-0.5*min(self.size),0.5*self.size[1]-0.5*min(self.size)
颜色:
rgba:.5,0,1,1
椭圆:
尺码:30,30
位置:0.5*root.size[0]+25,0.8*root.size[1]-25
颜色:
rgba:0.5,0,1英寸
我还附上了我用于示例的部门徽标。我让您调整大小并添加适当的调整调用。一定要检查Kivy存储库中的文件夹。