【问题标题】:Android Screen size full screen安卓屏幕尺寸全屏
【发布时间】:2015-05-04 23:49:08
【问题描述】:

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

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

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)。 我有一个全屏应用程序,没有操作栏或导航栏等。 为什么会发生这种情况以及如何获得 1920。我使用 API >= 14。

问候

【问题讨论】:

  • 虽然我确信你的代码总是为我返回有效值,但我没有处于全屏模式......也许这就是问题
  • 它说在 Android 4.2 或更高版本上此代码不起作用,
  • 我一直在使用该代码...我不知道。我猜是 API 级别 14,但从未见过任何问题 :((

标签: android size screen pixel


【解决方案1】:

您可以尝试使用 getRealSize 而不是 getSize (getRealSize)

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

【讨论】:

  • 我需要 API 14 的解决方案。要使用该代码,我需要 API 17。它可以工作,但我需要使用 API 14
  • 你可以这样做 if(Build.VESION.SDK_INT >= Build.VERSION_CODE.JELLY_BEAN_MR1) { // 使用 getRealSize Point size = new Point(); getWindowManager().getDefaultDisplay().getRealSize(size);高度 = 大小.y;宽度 = 大小.x; } else { 尝试 { 方法 getHeight = Display.class.getMethod("getRawHeight");方法 getWidth = Display.class.getMethod("getRawWidth"); width = (Integer) getHeight.invoke(display); height = (Integer) getWidth.invoke(display); } catch (Exception e) { width = display.getWidth();高度 = display.getHeight(); } }
猜你喜欢
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多