java - 如何检测 Mac 是否具有来自 Java 的 Retina 显示屏?

标签 java macos

我发现了一个 Swing 图像渲染错误,它只影响配备 Retina 显示屏的 Mac(TYPE_INT_ARGB_PRE BufferedImages 无法绘制)。我有一个有效的解决方法(改为使用 TYPE_INT_ARGB 图像),但为了应用它,我需要能够检测主机是否是带有 Retina 显示屏的 Mac。检测机器是不是Mac没问题,但是如何判断显示器类型呢?

最佳答案

Toolkit.getDefaultToolkit().getDesktopProperty("apple.awt.contentScaleFactor")

上面的行应该在 Retina 显示器上返回 2.0。在较新的非视网膜 mac 上,它返回 1.0,在所有其他平台上,您返回 null。我找不到任何官方文档,但我遇到了它 in this mailing list post在尝试解决类似问题时。

关于java - 如何检测 Mac 是否具有来自 Java 的 Retina 显示屏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14716743/

相关文章:

python - 如何破解 IntelliJ Idea 命令行启动器脚本以在独立窗口中打开文件并等待关闭?

java - java中如何读取文本文件?

linux - IOHIDManager OsX : wrong match between HID descriptor and HID report?

java - 使用gson和java解析json

java - `java.lang.ClassFormatError` 错误代码列表

bash - 无法重命名,没有那个文件或目录

macos - 由于 "unknown message digest algorithm",curl 无法访问 github.com

c# - 如何转换文件名中的符号?

Java日历添加随机数毫秒?

Java 在 X 时间过去后替换图标图像