获取活动的宽度和高度而不是物理屏幕

时间:2016-01-29 22:13:32

标签: java android android-activity

在google获取屏幕的宽度和高度后,我遇到了下面的代码,但这似乎得到了物理宽度和高度,这使得我生成的矩形超出界限。

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

我也试过下面的代码,但我仍然遇到同样的问题,我相信这些并不是获得活动宽度和高度的正确方法。任何人都可以提供如何实现这一点的方法(获取用户当前所在的活动的宽度和高度)

int width = getApplicationContext().getResources().getDisplayMetrics().widthPixels - con;
int height = getApplicationContext().getResources().getDisplayMetrics().heightPixels - con1;

3 个答案:

答案 0 :(得分:0)

答案是in the documentation

Point screenSize = new Point();
getActivity().getWindowManager().getDefaultDisplay().getSize(screenSize);

答案 1 :(得分:0)

试试这个。它对我有用。

DisplayMetrics metrics = this.getResources().getDisplayMetrics();
int width = metrics.widthPixels;
int height = metrics.heightPixels;

you need to pass context if you are using it outside activity.
Replace "this" with your context.

答案 2 :(得分:0)

您需要活动装饰视图的宽度和高度。

int width = getWindow().getDecorView().getWidth();
int height = getWindow().getDecorView().getHeight();