首页 > 解决方案 > 如何使图像在android python kivy上全屏显示?

问题描述

我想图像是完整的。我的代码:

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.image import Image
from kivy.lang import Builder

Builder.load_string('''
<RootWidget>
    FloatLayout:
        Image:
            id: imgh
            pos: self.pos
            size: self.size
            source: 'background.gif'
''')
class RootWidget(FloatLayout):
    def __init__(self, **kwargs):
        pass
class TestApp(App):
    def build(self):
        return RootWidget()

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

但是我不能全屏,左右两边都有黑线。如何解决?我希望你能帮助我...

标签: pythonkivy

解决方案


黑条可能是因为当您在整个屏幕上放大图像时,图像仍保持其比例。修复它的一种方法是将 allow_stretch 设置为 True 并将 keep_ratio 设置为 False(在 kv 字符串内)。此外,我将 size_hint 设置为 None 并使用 Window 类来获取整个屏幕大小。刚刚用我的一张图片对其进行了测试,希望它也适用于你。

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.image import Image
from kivy.lang import Builder
from kivy.core.window import Window

Builder.load_string('''
<RootWidget>
    FloatLayout:
        Image:
            id: imgh
            pos: self.pos
            size_hint: None, None
            size: root.size
            allow_stretch: True
            keep_ratio: False
            source: 'background.gif'
''')

class RootWidget(FloatLayout):
    def __init__(self, **kwargs):
        super(RootWidget, self).__init__(**kwargs)
class TestApp(App):
    def build(self):
        return RootWidget(size_hint=(None,None), size=Window.size)

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

推荐阅读