我使用 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/