How to get real screen size?

114 views (last 30 days)
Mr M.
Mr M. on 17 Nov 2016
For a MacBook retina display with get(0,'ScreenSize') I get [1 1 1280 800]; Why?
Christopher Wong
Christopher Wong on 3 Jan 2021
yeah just use get(0, 'ScreenSize') or get(0, 'MonitorPositions)

Sign in to comment.

Answers (2)

Ulrik on 7 Mar 2018
You can get the real values by the following code:
ScreenPixelsPerInch = java.awt.Toolkit.getDefaultToolkit().getScreenResolution()
ScreenDevices = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices();
MainScreen = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getScreen()+1;
MainBounds = ScreenDevices(MainScreen).getDefaultConfiguration().getBounds();
MonitorPositions = zeros(numel(ScreenDevices),4);
for n = 1:numel(ScreenDevices)
Bounds = ScreenDevices(n).getDefaultConfiguration().getBounds();
MonitorPositions(n,:) = [Bounds.getLocation().getX() + 1,-Bounds.getLocation().getY() + 1 - Bounds.getHeight() + MainBounds.getHeight(),Bounds.getWidth(),Bounds.getHeight()];

Guillaume on 17 Nov 2016
Saying that, you should use the resolution returned by matlab, not the actual screen resolution. Using real screen resolution is why so many programs fail to scale properly on high DPI displays.
adams13 on 29 Nov 2019
Mathworks was stupid enough to name "Pixel" something else and not provide anything like "pixelphysical" or so. We all know what "pixel on the screen" is. Why to misuse the known property without warning? I do have a high DPI display and an information from Matlab is crap.
This is what I have accidently found deep in the help ("figure", under "Units" for "pixels"):
Starting in R2015b, distances in pixels are independent of your system resolution on Windows and Macintosh systems:
On Windows systems, a pixel is 1/96th of an inch.
On Macintosh systems, a pixel is 1/72nd of an inch.
On Linux® systems, the size of a pixel is determined by your system resolution.

Sign in to comment.


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by