问题描述
我需要了解使用Kivy在Python中创建的应用程序中的屏幕分辨率(以像素为单位)。具体问题涉及Android。不幸的是,Kivy本身不想将从GL获得的信息传输给用户,因此我必须使用变通办法。根据{{3}}和pyjnius manual,在Android下为pyjnius,我尝试了以下代码:
from kivy.app import App
from kivy.uix.button import Button
from kivy.utils import platform
from kivy.core.window import Window
from kivy.graphics import Canvas,Rectangle,Color
myheight=-100
mywidth=-100
myDPI=-100
gDPI=-100
Window.fullsceen = True
if platform == 'android':
from jnius import autoclass
DisplayMetrics = autoclass('android.util.DisplayMetrics')
metrics = DisplayMetrics()
gDPI=metrics.getDeviceDensity()
myheight = metrics.heightPixels
mywidth = metrics.widthPixels
myDPI = metrics.densityDpi
class MainApp(App):
def build(self):
b = Button(text="Height: "+ str(myheight) + "\nWidth: " + str(mywidth) + "\nDPI: " + str(myDPI) + "\ngetDPI: " + str(gDPI)
+ '\nWindow.size:' + str(Window.size),color = [0,1])
with b.canvas:
Color(0,1,.2)
Rectangle(size = Window.size,pos = (0,0))
return b
MainApp().run()
但是结果是我所有三个值= 0,并且窗口大小= 800px,独立于platfrom。 Pyjnius手动使用方法getDeviceDensity()未在DisplayMetrics方法中进行记录。有什么其他方法可以在android下的kivy中检测屏幕分辨率吗?我可以直接调用SDL2来检测屏幕分辨率以及必须正确执行的操作吗? 屏幕快照(按要求)已附加。DisplayMetrics manual
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)