我正在编写一个小应用程序,遇到了以下问题。 在以像素为单位测量屏幕高度时,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。我很困惑。
答案 0 :(得分:1)
此方法返回的大小(getContext().getResources().getDisplayMetrics().heightPixels
不一定代表显示器的实际原始大小。它可以包括statusbar
的高度,有时不取决于{{1 }}。
您可以通过方法mobile system
来获取activity
窗口的实际高度,该方法始终包含getWindowsManager().getDefaultDisplay().getRealmetrics(metrics)
。