android displaymetrics 返回屏幕尺寸的 2/3

标签 android android-screen

我使用 displaymetrics 来获取设备的屏幕尺寸。在智能手机中效果很好,但在平板电脑中它返回屏幕宽度和高度的 2/3。谁能告诉我这是为什么?

这是代码:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int screenheight = metrics.heightPixels;
int screenwidth= metrics.widthPixels;

最佳答案

尝试使用 getRealMetrics() 代替:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getRealMetrics(metrics);

这个 API 是在 API 17 中正式添加的,但在我的有限测试中,它甚至在 4.0 设备上也能正常工作,所以它可能在此之前是一个隐藏的 API。

官方文档here ,虽然似乎有更多的原因表明其他 API 没有按照您的预期执行,而不是那里的文本所暗示的。

如果有此 API 无法运行的 ICS 设备,您也可以尝试提到的回退 here .

关于android displaymetrics 返回屏幕尺寸的 2/3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10381524/

相关文章:

Android:禁用平板电脑的应用程序

android - 从 Android 应用程序控制外部屏幕

Android:当页面从纵向变为横向时停止刷新 Activity

Android Mapbox 地理编码

java - 将当前时间(以毫秒为单位)与共享首选项中保存的时间进行比较

android - 如何在android中制作流畅的帧动画?

java - Android:小部件中 super() 调用的位置

java - 将单选按钮添加到上下文菜单

android - 如何获得布局尺寸或更像以像素为单位的高度和宽度?

android - 有人可以帮我想象这个关于不同屏幕尺寸的例子吗?