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