Android DisplayMetrics returns 不正确的屏幕尺寸(以像素为单位)

Android DisplayMetrics returns incorrect screen size in pixels

我有三星 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
  • 全高清+:2400x1080
  • 高清+:1600x720

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