Kivy:解决行为
Posted
技术标签:
【中文标题】Kivy:解决行为【英文标题】:Kivy: Resolution Behavior 【发布时间】:2015-10-03 19:36:52 【问题描述】:如果我创建一个分辨率为 800x600 并设置全屏的 kivy 应用,并在 android 上运行此应用,分辨率是否会自动适合 android 的屏幕(无黑边)?
如果没有,
在任何设备上确保全屏显示的正确 python 方法是什么?
-------更新 9:41pm----------
我导入了 Kivy 的 metric 模块并使用 dp() 进行尺寸测量。
如果 GW.width != Windows.width: GW.size = (dp(Window.width), dp(Window.height))
使用 dp() 和 sp(fonts) 会确保在多个设备上正确地全屏缩放吗?
【问题讨论】:
【参考方案1】:我怀疑将分辨率硬编码到设备中是否可行,除非用不同的分辨率测试您的应用。
我认为确保您的应用适合设备屏幕的最佳方法是利用您在 GUI 中使用的各种小部件的 size_hint
和 pos_hint
属性。这通常会使您的小部件相对相对于它们的父级/容器来调整大小和位置。据我所知,“***”应用程序Window
本身将自动占据设备的全屏。因此,其中的所有内容都应该进行相对缩放和定位。
此外,当您确实指定小部件或字体的大小时,分别使用 'dp'
和 'sp'
可以大大确保在不同设备之间调整大小。示例:font_size: '20sp'
或Label(text='bleh', font_size='20sp')
这种方式也不需要导入metrics模块来使用(无论如何在kv文件中)
我自己,我倾向于使用size_hint
和pos_hint
来调整和定位我的很多小部件,我会使用'sp'
来设置字体大小,可能'dp'
只用于填充和间距等。
以下是相关文档的链接:
Kivy Metrics
Understanding size_hint
编辑:
针对您的额外问题,这看起来确实可行。但是,我个人更喜欢使用size_hint
和pos_hint
,因为我发现它更直观且更简单。最好的了解方法就是进行实验。
【讨论】:
事实证明我对 dp 的看法是正确的。一切都可以在不使用它的情况下正确扩展。我承认,我也犯了一个愚蠢的错误,导致定位失败。现在我想知道......是否有任何使用 dp 显示完整分辨率的 kivy 应用程序?我不认为有,因为我的测试证明它会影响你的布局。以上是关于Kivy:解决行为的主要内容,如果未能解决你的问题,请参考以下文章