尝试在Windows设备上获取用户监视器的分辨率(不是像素数但是当前工作分辨率)时,我遇到了一些有趣的问题。 Screen.getPrimary().getBounds()
在ALMOST所有系统上返回正确的结果。它与Win 10笔记本电脑有问题。即使它们是4K和FullHD设备,它们的分辨率也被认为是1280x768。
我也尝试过以下方法:
Toolkit.getDefaultToolkit().getScreenSize()
Screen.getScreens()
然后遍历所有屏幕(只找到一个)GraphicsDevice getDisplayMode().getWidth();
GraphicsEnvironment getScreenDevices()
然后遍历所有屏幕(只找到一个)我没有更多的想法。有没有其他方法可以在所有Windows设备上正确获取屏幕分辨率?
答案 0 :(得分:1)
我既不知道你的设备也不知道Windows 10,但有一件事你应该记住。报告的大小不是设备的物理像素大小。而是报告缩放的大小。在Windows上,这取决于设备的显示设置。例如,我的Mac的物理像素大小为2880x1800,但报告的大小为1440x900。根据您的设置,这并不总是正好2的因素。