Python Kivy:如何优化所有设备的屏幕分辨率?
Python Kivy: How to optimize screen resolution for all devices?
我刚开始使用 kivy 编码并致力于 it.But 我想知道如何为 apk 应用程序优化屏幕分辨率。我的意思是,我使用 Window.size = (423,750)
并在使用此分辨率编码后进行控制。因此,尝试使用 boxlayouts 创建所有小部件,size_hints。但是当我在 Genymotion 或 Android 设备上检查我的应用程序时,我的小部件看起来不像我在 linux.
上创建的
例如,我将它用于文本:font_size: '18sp'
。但是当我检查不同的 genymotion android 时,它看起来不像我 wanted.It 的大小变化设备,有时 boxlayout 会阻塞它的大小并使其不可读。
每个设备上是否有自动屏幕分辨率的任何命令,或者我应该像这样创建这些 font_size :font_size: str(root.width*.05)+'sp'
(所以我应该像这样更改我的所有代码 spacing: 30
到 spacing: root.height*.007
)?任何帮助对像 me.How 这样的初学者来说都是有益的,我应该优化所有小部件和文本吗?感谢阅读和回答..
首先,不要 使用 Window.size
来控制 window 的大小,因为您不知道设备的大小到底。其次,在 kv 中,您可以使用 sp()
或 dp()
辅助函数定义字体大小,例如:
Label:
text: 'Hello'
font_size: sp(18)
要在开发过程中预览您的应用,您可以通过以下方式在不同的设备上进行测试:
- 检查相应设备的分辨率
- 检查设备的 dpi
因此,例如模拟 三星 S9+,其分辨率为 1440x2960
,dpi 为 529
。你会 运行 你的应用程序是这样的:
python main.py --size=1440x2960 --dpi=529
这会给你想要的结果,如果使用这种方法,我发现使用 dp()
辅助函数比 sp()
更容易,因为你现在拥有的是dpi 所以 kivy 可以使用它。
请注意,如果您的屏幕小于指定尺寸,例如在我的笔记本电脑上分辨率为 1366x768
,您只需按比例缩小尺寸,例如 运行如:
python main.py --size=360x740 --dpi=529
它的分辨率相同,但缩放到原始大小的四分之一左右以适合您的屏幕。
仅供参考,您还可以在 .py
文件中使用 dp()
和 sp()
函数,只需像这样导入它们:
from kivy.metrics import dp, sp
我刚开始使用 kivy 编码并致力于 it.But 我想知道如何为 apk 应用程序优化屏幕分辨率。我的意思是,我使用 Window.size = (423,750)
并在使用此分辨率编码后进行控制。因此,尝试使用 boxlayouts 创建所有小部件,size_hints。但是当我在 Genymotion 或 Android 设备上检查我的应用程序时,我的小部件看起来不像我在 linux.
例如,我将它用于文本:font_size: '18sp'
。但是当我检查不同的 genymotion android 时,它看起来不像我 wanted.It 的大小变化设备,有时 boxlayout 会阻塞它的大小并使其不可读。
每个设备上是否有自动屏幕分辨率的任何命令,或者我应该像这样创建这些 font_size :font_size: str(root.width*.05)+'sp'
(所以我应该像这样更改我的所有代码 spacing: 30
到 spacing: root.height*.007
)?任何帮助对像 me.How 这样的初学者来说都是有益的,我应该优化所有小部件和文本吗?感谢阅读和回答..
首先,不要 使用 Window.size
来控制 window 的大小,因为您不知道设备的大小到底。其次,在 kv 中,您可以使用 sp()
或 dp()
辅助函数定义字体大小,例如:
Label:
text: 'Hello'
font_size: sp(18)
要在开发过程中预览您的应用,您可以通过以下方式在不同的设备上进行测试:
- 检查相应设备的分辨率
- 检查设备的 dpi
因此,例如模拟 三星 S9+,其分辨率为 1440x2960
,dpi 为 529
。你会 运行 你的应用程序是这样的:
python main.py --size=1440x2960 --dpi=529
这会给你想要的结果,如果使用这种方法,我发现使用 dp()
辅助函数比 sp()
更容易,因为你现在拥有的是dpi 所以 kivy 可以使用它。
请注意,如果您的屏幕小于指定尺寸,例如在我的笔记本电脑上分辨率为 1366x768
,您只需按比例缩小尺寸,例如 运行如:
python main.py --size=360x740 --dpi=529
它的分辨率相同,但缩放到原始大小的四分之一左右以适合您的屏幕。
仅供参考,您还可以在 .py
文件中使用 dp()
和 sp()
函数,只需像这样导入它们:
from kivy.metrics import dp, sp