Android Displaymetrics 返回屏幕尺寸的 2/3



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

这里的官方文档,尽管似乎有更多的原因表明其他 API 没有做你所期望的事情,而不是那里的文本所暗示的。

如果此 API 不适用于某些 ICS 设备,也可以尝试此处提到的回退。

您没有按密度缩放。

试试这个:

int screenHeight = metrics.heightPixels * getResources().getDisplayMetrics().density;
int screenWidth = metrics.widthPixels * getResources().getDisplayMetrics().density;

(WindowManager) context.getSystemService(Context.WINDOW_SERVICE).getDefaultDisplay().getWidth();

相关内容

  • 没有找到相关文章

最新更新