【问题标题】:Get screen size in Java [duplicate]在Java中获取屏幕大小[重复]
【发布时间】:2013-03-14 11:19:11
【问题描述】:

如何在 Java 中获取屏幕大小?

不是屏幕分辨率、屏幕/显示器尺寸(英寸)和纵横比。 开发的应用程序必须显示某种大小必须相同的测试,无论屏幕大小和纵横比如何。 假设我们想要显示一个 2 厘米宽和 2 厘米高的矩形,并且我们希望它对于每种可能的显示适配器类型都具有相同的大小。

【问题讨论】:

  • 我认为这是不可能的,因为你应该知道屏幕DPI来计算实际尺寸,但它seems not possiblein Java
  • GraphicsConfiguration 中尝试getDefaultTransform
  • 投影仪图像的屏幕尺寸是多少?无论如何,数字的相关性是什么?您在屏幕上制作特定尺寸的规范是没有意义的。
  • 是的......我的客户是个可怕的白痴,并认为这与心理测试有关......所以所有孩子都可以有相同的测试区域......它可能是相关的......在像这样的非常具体的情况下

标签: java swing awt screen


【解决方案1】:

我认为答案是在纯 Java 中无法实现,甚至可能根本无法实现。

您可以通过默认的Toolkit 对象获取以像素为单位的可显示屏幕尺寸和 Java 中的标称缩放 (dpi)。然而,这些通常是不准确的......这会导致非正方形。

您也许可以通过本机代码获得更准确的值,但这肯定是不可移植的。这个 Q/A 说这是不可能的 - How to get screen's physical size (i.e. in inches)?

【讨论】:

    【解决方案2】:

    下面概述了在测试环境中校准特定显示器的一种方法:

    • 构造一个假定任意数量的像素/英寸 (DPI) 的校准矩形。估计可以从GraphicsConfiguration#getNormalizingTransform()获得。

    • 按照假定的 DPI 渲染该矩形。

    • 为水平和垂直 DPI 添加微调器。

    • 要求用户调整微调器以使矩形具有所需的尺寸。

    • 记录java.util.Preferences中的值以备后用。

    • 使用GraphicsDevice#getIDstring() 来识别特定的设备校准。

    附录:ImageJ 中的 Analyze > SetScale… 对话框中提供了类似的功能,如 wiki 主题 SpatialCalibration 中所示。

    【讨论】:

    • 这是下一次的完美解决方案:D,用户校准
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-23
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多