Java 检测是否在HiDPI显示器上运行
如何从SWT应用程序中检测它正在HiDPI(“视网膜”)显示器上运行?类Java 检测是否在HiDPI显示器上运行,java,macos,swt,retina-display,Java,Macos,Swt,Retina Display,如何从SWT应用程序中检测它正在HiDPI(“视网膜”)显示器上运行?类设备,它是显示器的一个超类,具有一个名为getDPI()的方法,该方法将返回显示器的DPI值: Device device = shell.getDisplay(); System.out.println(device.getDPI()); 我知道,但是如何检测OSX是否在“视网膜”显示模式下运行?那么,除了DPI设置之外,您还需要知道什么?我对OSX了解不多,但由于SWT对每个平台都有(几乎)相同的API,我的猜测是,您
设备
,它是显示器的一个超类,具有一个名为getDPI()
的方法,该方法将返回显示器的DPI值:
Device device = shell.getDisplay();
System.out.println(device.getDPI());
我知道,但是如何检测OSX是否在“视网膜”显示模式下运行?那么,除了DPI设置之外,您还需要知道什么?我对OSX了解不多,但由于SWT对每个平台都有(几乎)相同的API,我的猜测是,您无法从SWT获得这些信息。您可能能够从SWT在命令行中运行一些东西,并解析结果……但是对于OS X上的“视网膜/HiDPI”模式,一个虚拟像素映射到2x2物理像素(例如,1920x1200监视器以960x600 HiDPI分辨率运行)。这将产生非常平滑的图形。