Android getDisplayMetrics()的奇怪工作

Android getDisplayMetrics()的奇怪工作,android,screen-size,Android,Screen Size,我正在编写一个小应用程序,遇到了以下问题。 当以像素为单位测量屏幕高度时,全高清屏幕显示1920像素,全高清+屏幕(2160像素)显示2030像素。有什么问题吗?有没有一种不用拐杖就能解决的方法(哈哈) 全高清: getContext().getResources().getDisplayMetrics().heightPixels; >> W/Height of screen: 1920 FullHD+: getContext().getResources().getDispla

我正在编写一个小应用程序,遇到了以下问题。 当以像素为单位测量屏幕高度时,全高清屏幕显示1920像素,全高清+屏幕(2160像素)显示2030像素。有什么问题吗?有没有一种不用拐杖就能解决的方法(哈哈)

全高清:

getContext().getResources().getDisplayMetrics().heightPixels;
>> W/Height of screen: 1920
FullHD+:

getContext().getResources().getDisplayMetrics().heightPixels;
>> W/Height of screen: 2030
也许问题在于我在模拟器中运行的全高清屏幕,但FullHD+是小米Mix 2s的原生版本,但无论如何,它都不能解决问题


UPD:是的,在emulator FullHD+屏幕上显示所有2160px。我很困惑。

此方法返回的大小(
getContext().getResources().getDisplayMetrics().heightPixels
)不一定表示显示器的实际原始大小。它可能包括
状态栏的高度,有时不取决于
移动系统

您可以通过方法
getWindowsManager().getDefaultDisplay().getRealmetrics(metrics)
获取
活动
窗口的实际高度,该方法始终包含
状态栏