Kivy:图像滚动

Kivy: Image scrolling

我有一个简单的代码:

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

class TutorialApp(App):
    def build(self):
        l=Image(source='kivy.jpg', keep_ratio=True)
        return l
if __name__ == "__main__":
    TutorialApp().run()

我得到以下结果:

我想要图像宽度等于屏幕宽度(不丢失纵横比)。我还需要垂直滚动(以查看完整图像)。

结果应该是这样的:

怎么做?

P.S。抱歉我的英语不好

要使图像或任何内容可滚动,请使用 ScrollView:

from kivy.app import App
from kivy.uix.image import Image
from kivy.uix.scrollview import ScrollView
from kivy.core.window import Window


class TutorialApp(App):
    def build(self):
        sv = ScrollView(size=Window.size)
        l = Image(
            source='kivy.jpg',
            size_hint=(None, None),
            keep_ratio=True,
            size=Window.size
        )
        sv.add_widget(l)
        return sv

if __name__ == "__main__":
    TutorialApp().run()

size_hint 设置为 (None, None) 然后定义固定的 size 允许保持原始 window 大小,即使它是未来的变化。

from kivy.app import App
from kivy.core.window import Window
from kivy.uix.image import Image
from kivy.uix.scatter import ScatterPlane

class MyScatterPlane(App):
    def build(self):
        sp = ScatterPlane(scale=1)
        img = Image(source='ccc.bmp', pos=(0,0), size=Window.size)
        sp.add_widget(img)

        return sp

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