【发布时间】:2012-11-29 14:52:25
【问题描述】:
我尝试了不同的方法来获取设备的屏幕尺寸,但它总是返回错误的尺寸(791x480 而不是854x480)。可能是导航栏的原因。我的设备目前正在运行 JellyBean 4.1.1。
我试过了:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
OpenGLRenderer.widthScreen = size.x;
OpenGLRenderer.heightScreen = size.y;
还有:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
String resolution = dm.widthPixels + "x" + dm.heightPixels;
我正在使用以下代码使应用全屏显示:
setContentView(mGLSurfaceView);
mGLSurfaceView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
我注意到在 logcat 中,返回了正确的大小:
01-01 03:05:06.967: I/InputReader(1961):
Device reconfigured: id=8, name='cyttsp-spi',
surface size is now 480x854, mode is 1
在我的AndroidManifest:
uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16"
我用过:
- Get the real screen resolution on Ice Cream Sandwich
- HTC Sensation Real Resolution
- Get screen dimensions in pixels
为什么我无法获得实际尺寸 (480x854)?或者如何使用“设备重新配置”返回的表面?
【问题讨论】:
-
尝试getRealMetrics developer.android.com/reference/android/view/…
-
我很困惑。你问如何获得设备的物理尺寸,然后你说你得到的尺寸减去导航栏。然后你说你有设备的物理尺寸。你的问题到底出在哪里?
-
@deev 你说得对,我问的是如何获取设备的物理尺寸,我只是假设返回给我的尺寸是减去导航栏的尺寸。我正在寻求一种编写代码的方法,该代码将为任何设备提供物理尺寸。
-
@jameo 我正在尝试使用你的方法,但是当我尝试这个时:'final DisplayMetrics metrics = new DisplayMetrics();显示显示 = getWindowManager().getDefaultDisplay(); display.getRealMetrics(metrics);'我收到 getRealMetrics 错误,提示 方法 getRealMetrics(DisplayMetrics) 未针对 Display 类型定义。有什么想法吗?
-
你在 Logcat 中说你得到了你期望的大小。日志不会为你改变变量,所以我还是很困惑。
标签: android resolution