getDisplayMetrics()的奇怪工作

时间:2018-08-09 23:32:22

标签: android screen-size

我正在编写一个小应用程序,遇到了以下问题。 在以像素为单位测量屏幕高度时,FullHD屏幕给出1920px,FullHD +屏幕(2160px)给出2030px。可能是什么问题呢?有没有办法不用拐杖就能解决这个问题(哈哈)?

FullHD:

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

FullHD +:

getContext().getResources().getDisplayMetrics().heightPixels;
>> W/Height of screen: 2030

也许问题是我在模拟器中运行了FullHD屏幕,但是FullHD +是小米Mi Mix 2s的本地版本,但是无论如何,它不能解决问题。

UPD:是的,在模拟器的FullHD +屏幕中会显示所有2160px。我很困惑。

1 个答案:

答案 0 :(得分:1)

此方法返回的大小(getContext().getResources().getDisplayMetrics().heightPixels不一定代表显示器的实际原始大小。它可以包括statusbar的高度,有时不取决于{{1 }}。

您可以通过方法mobile system来获取activity窗口的实际高度,该方法始终包含getWindowsManager().getDefaultDisplay().getRealmetrics(metrics)