python - 如何使图像在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()
但是我不能全屏,左右两边都有黑线。如何解决?我希望你能帮助我...
解决方案
黑条可能是因为当您在整个屏幕上放大图像时,图像仍保持其比例。修复它的一种方法是将 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()
推荐阅读
- postgresql - 如何使用 plpgsql 函数将实际月份划分为 5 天
- python - 将新键/值添加到 geojson 文件中的嵌套字典
- angular - CanActivate Observable 在服务检查延迟时返回 false
- javascript - 使用 Vue-Treeselect 不存在时找不到添加新项目的方法
- mongodb - 具有 2 个属性条件的 MongoDB $elemMatch
- c++ - 在内存流而不是 C++ 中的文件流中写入/读取内容
- yocto - 二进制需要 /lib64 但只有 /lib
- powerbi - DAX Measure 从创建的 Measure 中计算 Sum 和 Count
- javascript - div内的A-Frame serpte图像未加载
- linux - nginx 在 aws 上失败但在 localhost 上成功运行