如何将图像从外部服务器设置为kv文件

时间:2016-01-30 19:35:58

标签: python-2.7 kivy

我的代码适用于保存在同一目录中的图像。

#!/usr/bin/kivy
import kivy
kivy.require('1.7.2')

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button

Builder.load_string('''
<MenuScreen>:
    GridLayout:
        cols: 1
        Button:
            on_press: root.val1()
            Image:
                source: "myimage.PNG"
                size: self.parent.width, self.parent.height
                allow_stretch: True
                keep_ratio: False

''')

class MenuScreen(Screen):
    def val1(self):
        print "i am executed"

sm = ScreenManager()
menu = MenuScreen(name='menu')
sm.add_widget(menu)

class MainApp(App):
    def build(self):
        return sm

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

如果我想从外部来源拍摄图像,那么应该在此代码中进行哪些更改

Image:
    source: "http://example.com/myimage.jpg"

显然这不起作用。请帮忙。

1 个答案:

答案 0 :(得分:1)

请尝试使用AsyncImage。来自documentation

  

异步加载图像(例如从外部加载)   webserver),使用AsyncImage子类:

aimg = AsyncImage(source='http://mywebsite.com/logo.png')
     

这可能很有用,因为它会阻止您的应用程序等到   图像已加载。如果要显示大图像或检索   它们来自URL,使用AsyncImage将允许这些资源   在后台线程上检索而不会阻止您的应用程序。