如何以编程方式在Android设备上获取总屏幕大小

Kev*_*vik 7 user-interface android screen

如果我使用此处显示的代码来获得总屏幕尺寸,则总是将高度缩短到总屏幕尺寸,如设备的文档规格所示.例如,我试图通过使用代码来获得屏幕大小,以获得列为1280 X 800的平板电脑的大小,代码的结果是:1216 X 800.那么缺少64个像素的位置在哪里?

我可以猜到它可能是屏幕底部的栏,它保持后面和主页按钮.但这听起来不对,因为内容视图应该是所有视图的根.这里发生了什么?

唯一可能的解释可能是UI的这一部分

这是总屏幕尺寸的例外吗?

用于获取屏幕大小的代码

  // gets the content view windows width and height size
   DisplayMetrics displaymetrics = new DisplayMetrics();
   getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
   int widthContentView = displaymetrics.widthPixels;
   int heightContentView = displaymetrics.heightPixels;
   Toast.makeText(MainActivity.this, "width of content view: " + widthContentView  Toast.LENGTH_SHORT).show();
   Toast.makeText(MainActivity.this, "height of content view: " + heightContentView, Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)

San*_*ket 7

如果您在Activity之外调用它,则需要传递上下文(或通过其他调用获取).然后使用它来获取显示指标:

DisplayMetrics metrics = context.getResources().getDisplayMetrics();
int width = metrics.widthPixels;
int height = metrics.heightPixels;
Run Code Online (Sandbox Code Playgroud)


Man*_* Zi 3

我不确定你使用什么 api,但如果你从 17 开始使用 api,你可以使用这个:

display.getRealSize();
Run Code Online (Sandbox Code Playgroud)