安卓屏幕大小全屏显示

3

我需要获取准确的屏幕尺寸,但是我无法获取它。

我尝试了这两个不同的代码:

DisplayMetrics display = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
height = display.heightPixels;
width = display.widthPixels;


Point size = new Point();
getWindowManager().getDefaultDisplay().getSize(size);
height = size.y;
width = size.x;

在这两种情况下,高度是正确的(1080),但宽度不正确。它应该返回1920,但它返回了1794。我的手机是三星Galaxy S4(1920x1080)。我有一个全屏应用程序,没有actionbar或导航栏等。为什么会出现这种情况,我怎样才能得到1920?我使用的API版本>=14。

问候


https://dev59.com/f2gu5IYBdhLWcg3w6bGo - Bojan Kseneman
虽然我相信你的代码总是为我返回有效的值,但我没有处于全屏模式...也许这就是问题所在。 - Bojan Kseneman
它说在Android 4.2或以上版本中,这段代码不起作用。 - user3240604
我从...我不知道开始使用那段代码。我猜是API级别14,但从未遇到任何问题 :(( - Bojan Kseneman
1个回答

2
你可以尝试使用getRealSize而不是getSize (getRealSize)
Point size = new Point();
getWindowManager().getDefaultDisplay().getRealSize(size);
height = size.y;
width = size.x;

我需要一个适用于API 14的解决方案。为了使用那段代码,我需要API 17。虽然它能够工作,但我需要使用API 14。 - user3240604
你可以像这样做: if(Build.VESION.SDK_INT >= Build.VERSION_CODE.JELLY_BEAN_MR1) { // 使用getRealSize Point size = new Point(); getWindowManager().getDefaultDisplay().getRealSize(size); height = size.y; width = size.x; } else { try { Method getHeight = Display.class.getMethod("getRawHeight"); Method getWidth = Display.class.getMethod("getRawWidth"); width = (Integer) getHeight.invoke(display); height = (Integer) getWidth.invoke(display); } catch (Exception e) { width = display.getWidth(); height = display.getHeight(); } } - toidv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接