当前位置: 首页 > 面试题库 >

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

向锦
2023-03-14
问题内容

我将做一些底层渲染工作,但是我需要知道真正的显示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;
}


 类似资料:
  • 对于我的密码强度检查器,我无法显示从我输入的密码获得的分数。下面是代码,问题一直显示在我的代码底部: /***确定给定字符串是否包含大写字母*@param s要检查的字符串*@return true当且仅当s包含大写字母*/public static boolean containsUpperCase(string s){for(int letter=0;letter=0){return true

  • 本文向大家介绍angularjs2 ng2 密码隐藏显示的实例代码,包括了angularjs2 ng2 密码隐藏显示的实例代码的使用技巧和注意事项,需要的朋友参考一下 angularjs2 ng2 密码隐藏显示代码结合ionic2开发移动端项目,注册页的密码的input一般用password,但是用户输入密码时可能会输入错误,需要显示成text。 如图: 首先,输入框的类型判断; 然后,添加眼睛的

  • 本文向大家介绍Java实现邮箱找回密码实例代码,包括了Java实现邮箱找回密码实例代码的使用技巧和注意事项,需要的朋友参考一下 通过邮件找回密码功能的实现 1、最近开发一个系统,有个需求就是,忘记密码后通过邮箱找回。现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回,可以进行密码找回。通过java发送邮件的功能我就不说了,重点讲找回密码。 2、参考别人的思路:发送邮件→请求邮件

  • 我正在使用。我刚刚检查了我的编码类,发现它的字节代码显示了我的加密密码在类中的原样。我真的开始担心我所有数据的安全性。如果有人黑了我的类,那么我的数据会发生什么。为什么java类不将字符串名和值转换为字节码?

  • 我是度量的新手,我不明白为什么我得到这个输出,请有人解释。提前感谢。 输出: 12/18/15 12:01:15PM = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -- 计量----------------------------------------

  • 本文向大家介绍基于JS实现密码框(password)中显示文字提示功能代码,包括了基于JS实现密码框(password)中显示文字提示功能代码的使用技巧和注意事项,需要的朋友参考一下 其实实际上实现中并不能让password中显示文字提示,但是我们在工作中有这样的需求,当没输入东西的时候,框内有提示输入密码,但是当输入东西的时候又显示的是*号,那么是如何实现的呢?其实原理很简单,就是放两个文本框,