如何从Java代码中找到实际显示密度(DPI)?

显示名称

我将做一些底层的渲染工作,但是我需要知道真正的显示DPI,才能制作出所有正确大小的东西。

我找到了一种方法来执行此操作:java.awt.Toolkit.getDefaultToolkit().getScreenResolution()—但它在OS X上以“视网膜”显示返回错误的结果,它是实际DPI的1/2。(在我的情况下,应为220,但应为110)

因此,必须有其他一些更正确的API可用,或者我需要仅针对OS X实施hack —以某种方式查找当前显示是否为“视网膜”。但是我也找不到任何查询此信息的方法。这个答案,但是在我的机器上Toolkit.getDefaultToolkit().getDesktopProperty("apple.awt.contentScaleFactor")只是返回null。

我该怎么做?

显示名称

看来目前有可能从中获取它java.awt.GraphicsEnvironment这是在最新的JDK(8u112)上运行的注释代码示例。

// find the display device of interest
final GraphicsDevice defaultScreenDevice = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();

// on OS X, it would be CGraphicsDevice
if (defaultScreenDevice instanceof CGraphicsDevice) {
    final CGraphicsDevice device = (CGraphicsDevice) defaultScreenDevice;

    // this is the missing correction factor, it's equal to 2 on HiDPI a.k.a. Retina displays
    final int scaleFactor = device.getScaleFactor();

    // now we can compute the real DPI of the screen
    final double realDPI = scaleFactor * (device.getXResolution() + device.getYResolution()) / 2;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Labview中找到显示器的dpi

来自分类Dev

如何从NSError代码中找到错误描述?

来自分类Dev

如何从模块中找到源代码路径

来自分类Dev

如何在javascript代码中找到问题

来自分类Dev

我如何在python中找到实际的逻辑回归模型?

来自分类Dev

如何显示在if语句中找到的结果?

来自分类Dev

如何从ISO 3166代码中找到ISD代码?

来自分类Dev

如何在R中找到两个密度与ggplot2的交点

来自分类Dev

如何在Java中找到枚举的子集?

来自分类Dev

如何在Java中找到整个单词?

来自分类Dev

如何在Xcode 7中找到未使用的代码?

来自分类Dev

如何在openerp的hr模块中找到弹出框代码?

来自分类Dev

在我的WordPress网站中找到可疑代码-如何解决?

来自分类Dev

如何在代码中找到需要许可的所有部分

来自分类Dev

如何在对象打字稿代码中找到元素

来自分类Dev

如何在Pandas中找到方法的源代码?

来自分类Dev

R:如何从gbm包中找到C / C ++源代码?

来自分类Dev

如何在代码中找到引发Doctrine异常的地方?

来自分类Dev

如何从颜色代码中找到颜色的名称

来自分类Dev

如何在此示例代码中找到Button的DataContext?

来自分类Dev

uipageviewController:如何在此代码中找到索引?

来自分类Dev

如何在javascript中的特定行号中找到源代码?

来自分类Dev

MVC5如何在代码中找到根路径?

来自分类Dev

如何在 vs 代码中找到角度标签定义

来自分类Dev

如何显示在tasm程序中找到的元素的索引

来自分类Dev

如何获取rspec以显示在失败的测试中找到的内容

来自分类Dev

如何正确显示在返回的json对象中找到的<img>标签

来自分类Dev

如何显示未从 AngularJS 搜索中找到的结果?

来自分类Dev

如何使用我们的Java代码中的WSDL文件中找到的用户定义数据类型?

Related 相关文章

  1. 1

    如何在Labview中找到显示器的dpi

  2. 2

    如何从NSError代码中找到错误描述?

  3. 3

    如何从模块中找到源代码路径

  4. 4

    如何在javascript代码中找到问题

  5. 5

    我如何在python中找到实际的逻辑回归模型?

  6. 6

    如何显示在if语句中找到的结果?

  7. 7

    如何从ISO 3166代码中找到ISD代码?

  8. 8

    如何在R中找到两个密度与ggplot2的交点

  9. 9

    如何在Java中找到枚举的子集?

  10. 10

    如何在Java中找到整个单词?

  11. 11

    如何在Xcode 7中找到未使用的代码?

  12. 12

    如何在openerp的hr模块中找到弹出框代码?

  13. 13

    在我的WordPress网站中找到可疑代码-如何解决?

  14. 14

    如何在代码中找到需要许可的所有部分

  15. 15

    如何在对象打字稿代码中找到元素

  16. 16

    如何在Pandas中找到方法的源代码?

  17. 17

    R:如何从gbm包中找到C / C ++源代码?

  18. 18

    如何在代码中找到引发Doctrine异常的地方?

  19. 19

    如何从颜色代码中找到颜色的名称

  20. 20

    如何在此示例代码中找到Button的DataContext?

  21. 21

    uipageviewController:如何在此代码中找到索引?

  22. 22

    如何在javascript中的特定行号中找到源代码?

  23. 23

    MVC5如何在代码中找到根路径?

  24. 24

    如何在 vs 代码中找到角度标签定义

  25. 25

    如何显示在tasm程序中找到的元素的索引

  26. 26

    如何获取rspec以显示在失败的测试中找到的内容

  27. 27

    如何正确显示在返回的json对象中找到的<img>标签

  28. 28

    如何显示未从 AngularJS 搜索中找到的结果?

  29. 29

    如何使用我们的Java代码中的WSDL文件中找到的用户定义数据类型?

热门标签

归档