Как сделать изображение полноэкранным на android python киве? - PullRequest
0 голосов
/ 01 мая 2020

Я хочу, чтобы изображение было полным. Мой код:

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()

Но я не могу сделать это в полноэкранном режиме, справа и слева есть черные линии. Как это исправить? Надеюсь, ты мне поможешь ...

1 Ответ

1 голос
/ 01 мая 2020

Черные полосы, вероятно, потому что изображение все еще сохраняет свое соотношение, когда вы увеличиваете его на весь экран. Один из способов исправить это - установить 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...