5

我正在使用 java 来获取屏幕的尺寸和分辨率。当我运行以下代码时,我得到下面的输出。

Toolkit toolkit =  Toolkit.getDefaultToolkit ();
Dimension dim = toolkit.getScreenSize();
System.out.println("Width of Screen Size is "+dim.width+" pixels");
System.out.println("Height of Screen Size is "+dim.height+" pixels");       
int resolution =Toolkit.getDefaultToolkit().getScreenResolution();
System.out.println(resolution);

输出:

Width of Screen Size is 1920 pixels
Height of Screen Size is 1080 pixels
120

现在 Javadoc 说 getScreenResolution 以 dpi(每英寸点数)为单位返回分辨率。我认为这意味着如果我有一个 600 像素宽的图像,那么它在我的屏幕上将是 5 英寸。当我测量时,它实际上是 4 英寸宽。向我表明它应该是 150 dpi。

我的显示器是 15.6 英寸显示器,我测量它的宽度为 13.6 英寸,高度略高于 7.6 英寸。现在我的屏幕宽度显然是 1920 像素宽,计算为每英寸大约 141 像素。同样 1080/7.6 计算大约每英寸 141 像素。

此网页显示 600x600 像素的图像。我在我的屏幕上测量它为 4.25 英寸,计算为 141 像素。

为什么 getScreenResolution 返回 120?

如果我对此有任何误解,请告诉我。

4

1 回答 1

1

Toolkit.getDefaultToolkit().getScreenResolution()试图获得分辨率,但取决于驱动程序的准确程度和其他因素(例如,并非视频卡和显示器之间的所有连接都无法反馈尺寸),返回的尺寸不能完全推开。

于 2013-03-31T21:41:11.077 回答