获取实际的屏幕高度(android)

我想获取运行我的应用程序的设备的实际屏幕高度。为此,我尝试以下操作:

DisplayMetrics metrics = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(metrics);

int Height = metrics.heightPixels;

TextView HeightView = (TextView) findViewById(R.id.screenHeight);

HeightView.setText("Screen Height: " + Height);

int Width = metrics.widthPixels;

TextView WidthView = (TextView) findViewById(R.id.screenWidth);

WidthView.setText("Screen Width: " + Width);

我使用模拟器运行的设备的屏幕宽度为1080像素,屏幕高度为1920像素。宽度可以正确显示(1080像素),但根据应用程序,高度仅为1776像素。我需要什么来使我的应用显示正确的屏幕高度?是metrics.heightPixels让屏幕高度的好方法?

回答:

看到这个答案

如果您的API级别> 13,请在活动时尝试

Display display = getWindowManager().getDefaultDisplay();

Point size = new Point();

display.getSize(size);

int width = size.x;

int height = size.y;

如果您不在活动中,则可以通过WINDOW_SERVICE获取默认的显示:

WindowManager wm = (WindowManager)    context.getSystemService(Context.WINDOW_SERVICE);

Display display = wm.getDefaultDisplay();

getWidth和getHeight适用于API级别13或更低

对于API

17和更高版本的方法,Display.getRealSize()将返回完整的屏幕尺寸,如文档中所述:

获取显示的实际大小,而不减去任何窗口装饰或应用任何兼容性比例因子。

尺寸根据显示器的当前旋转进行调整。

当窗口管理器模拟较小的显示时(使用adb shell am display-size),实际尺寸可能小于屏幕的物理尺寸。

以上是 获取实际的屏幕高度(android) 的全部内容, 来源链接: utcz.com/qa/428482.html

回到顶部