如果我创建了一个分辨率为800x600的kivy应用程序,并设置了全屏,并且在android上运行这个应用程序,那么分辨率是否会自动适应android的屏幕(没有黑色边框)?
如果不是,
在任何设备上,正确的python方法是什么?
-------更新时间:晚上9:41----------
我导入了Kivy的metric模块,并在尺寸测量中使用dp()。

If GW.width != Windows.width: GW.size = (dp(Window.width), dp(Window.height))


使用dp()和sp(字体)是否可以确保对多个设备进行正确的全屏缩放?

最佳答案

我怀疑将分辨率硬编码到设备中是永远不可能的,除非是在用不同的分辨率测试应用程序时。
我认为确保你的app适合设备屏幕的最好方法是利用你在GUI中使用的各种widget的size_hintpos_hint属性。这通常会调整小部件的大小并将其相对于其父/容器进行定位。据我所知,“顶级”应用程序本身将自动占据设备的全屏。所以它里面的所有东西都应该被相对地缩放和定位。
此外,当您确实指定了小部件或字体的大小时,使用Window'dp'分别会在很大程度上确保大小在设备之间是合适的。示例:'sp'font_size: '20sp'也不需要导入metrics模块来以这种方式使用它们(在任何情况下都在kv文件中)
就我自己而言,我倾向于使用Label(text='bleh', font_size='20sp')size_hint来调整和定位我的许多小部件,我会使用pos_hint来调整字体大小,并且可能只使用'sp'来填充和间距等。
以下是相关文档的链接:
Kivy Metrics
Understanding size_hint
编辑:
作为对你额外问题的回应,这看起来确实可行。不过,就我个人而言,我更喜欢使用'dp'size_hint,因为我发现它更直观,更简单。最好的方法就是做实验。

08-18 13:28
查看更多