当用户在Windows设置上更改屏幕分辨率时,如何使用Java获得正确的显示DPI?
为了获得dpi值,我使用以下方法:当用户在Windows设置上更改屏幕分辨率时,如何使用Java获得正确的显示DPI?,java,windows,awt,screen-resolution,toolkit,Java,Windows,Awt,Screen Resolution,Toolkit,为了获得dpi值,我使用以下方法: float dpi = Toolkit.getDefaultToolkit().getScreenResolution(); 当我应用1366 x 768作为分辨率值时,预先显示设置 dpi值返回96(这是我所期望的) 但是,当我在设置中将800 x 600更改为分辨率值时 dpi值返回96(该值应低于96) 当我在mac计算机中尝试相同的情况时,正确的值出现了 我认为Windows操作系统的分辨率值有问题。我已经测试了Windows 7和Windows 1
float dpi = Toolkit.getDefaultToolkit().getScreenResolution();
当我应用1366 x 768作为分辨率值时,预先显示设置
dpi
值返回96
(这是我所期望的)
但是,当我在设置中将800 x 600更改为分辨率值时
dpi
值返回96
(该值应低于96
)
当我在mac计算机中尝试相同的情况时,正确的值出现了
我认为Windows操作系统的分辨率值有问题。我已经测试了Windows 7和Windows 10
编辑:要了解我为什么需要此值,请检查此问题及其答案 我认为答案在于:
指定在屏幕上显示文本和其他项目的大小。
Windows DPI值是介于96和480之间的整数。支持的值
包括96、120和144。默认情况下,Windows使用自动DPI
配置
这就是为什么它以800 x 600返回
96
。您需要分辨率和dpi做什么?我的java应用程序可以根据屏幕的分辨率(DPI)扩展所有内容。这包括图标、边框、插图、自定义图形和字体。而您的图形API无法为您处理这些问题?我已经编辑了我的问题。请参阅