0

是否有可能在服务中(即不在活动中)获得屏幕的工作区域,即它的高度减去顶部的状态栏高度和底部的软键空间(“返回”、“主页”等)?

4

2 回答 2

2
private DisplayMetrics displayMetrics = new DisplayMetrics();
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
windowManager.getDefaultDisplay().getMetrics(displayMetrics);

int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels;

我已经从服务中尝试过了,它对我有用。在 2.3 设备上(在 Galaxy Y 和 Nexus One 上试用过)它提供了完整的屏幕尺寸。但是在 4.x 设备上(在 Nexus 4 上试过),它给出的屏幕尺寸减去状态栏。如果您找到了更可靠的方法,请发布。

于 2013-07-31T14:14:46.547 回答
0

除了 Srikant 的回答,这里还有另一种获取显示尺寸的方法:

DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels;

这给出了与 Srikant 的答案相同的高度和宽度。

于 2013-08-01T10:41:09.507 回答