我发现了一个Swing图像渲染错误,该错误仅会影响具有Retina显示屏的Mac(TYPE_INT_ARGB_PRE
BufferedImages
无法绘制)。我有一个有效的解决方法(改为使用TYPE_INT_ARGB
图像),但是要应用它,我需要能够检测主机是否是具有Retina显示屏的Mac。检测机器是否为Mac没问题,但是如何确定显示类型?
最佳答案
Toolkit.getDefaultToolkit().getDesktopProperty("apple.awt.contentScaleFactor")
上一行应在视网膜显示屏上返回2.0
。在较新的非视网膜Mac上,它返回1.0
,而在所有其他平台上,您都返回null
。我找不到任何官方文档,但是在尝试解决类似问题时遇到了in this mailing list post。