MacBook – Why is it that the MacBook Pro Retina’s resolution is detected as different based on the application

displayjavamacbook proresolution

The actual advertized resolution is 2880 x 1800.
Taking a fullscreen, screenshot gives me an image that is 2880 x 1800.
Going to this site tells me my resolution is 1440 x 900.
The built in Digital Color Meter tells me my resolution is 1440 x 900.
This bit of Java code:

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
double width = screenSize.getWidth();
double height = screenSize.getHeight();
System.out.println(width + " x " + height);

has an output of 1440 x 900.

So why is this and how do I fix it?

Best Answer

I am an iOS developer, so have a bit of an idea what is causing this. Apple measure screen size in points rather than pixels, and depending on whether your screen is a retina display or not, will change the scaling factor between points and physical pixels.

In your case, because you have a high-resolution Retina display, OS X is applying a scale factor of 2.0. This means that a webpage that has been designed with an element 500px across will still appear the right physical size (however it will in fact be 1000px across).

It's not a bug, it's a feature that means the retina display can still show the "old-fashioned" normal resolution content.