Android:如何获取设备的真实屏幕尺寸?

标签 android resolution

我尝试了不同的方法来获取设备的屏幕尺寸,但它总是返回错误的尺寸(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"

我用过:

为什么我无法获得实际尺寸 (480x854)?或者如何使用“设备重新配置”返回的表面?

最佳答案

试着打电话

    display.getRealSize();

免责声明: 我没有意识到这一点,但这仅适用于 API 17 (Android 4.2/JellyBean) 及更高版本。

关于Android:如何获取设备的真实屏幕尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13628389/

相关文章:

c# - OnGestureListener 在 Xamarin.Android 上的 fragment 中的 ListView 上捕获

java - 正则表达式仅阻止数字或空格,但允许数字和空格作为输入

android - dip、px、dpi的关系

android - 如何为android中的所有分辨率设置用户界面

android - 特定于分辨率的 Drawable 文件夹的不同图像大小

android - flutter 主 channel 问题

android - 我需要在 Xamarin Forms 按钮内设置格式化文本(两种不同大小)

android - 如何通过按 Android 设备上的后退按钮关闭 GameMaker 游戏?

css - <ul> <li> 在不同屏幕分辨率下的 Div 标签问题

video - Akamai可以为上传的视频流创建不同的分辨率吗