Android DisplayMetrics返回不正确的屏幕尺寸以像素为单位

问题描述

我有一个三星galaxy S20 +。

我运行以下代码

displayMetrics displayMetrics = new displayMetrics();
    getwindowManager().getDefaultdisplay().getMetrics(displayMetrics);
    mScreenHeight = displayMetrics.heightPixels;
    mScreenWidth = displayMetrics.widthPixels;

我得到:

mScreenHeight = 2201.0 mScreenWidth = 1080.0

根据this page,S20 +的屏幕分辨率为1440x3200。

这么大的差距不仅仅是状态栏高度的问题。

如何获得以像素为单位的实际屏幕尺寸?

谢谢!

解决方法

最近的Galaxy S设备具有更改屏幕分辨率的设置。 在S20 +上,有3个选项:

  • WQHD +:3200x1440
  • FHD +:2400x1080
  • HD +:1600x720

您可能处于FHD +模式。即使设备的实际像素尺寸为3200x1440,您的可用软件窗口也会缩小,这就是DisplayMetric对象为您提供的功能。