是否可以在服务中(即不在活动中)获取屏幕的工作区域,即其高度减去顶部的状态栏高度和软键区域(“后退”,“主页”等)底部?
答案 0 :(得分: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上试过),它会给屏幕尺寸减去状态栏。如果你找到了更可靠的方法,请发帖。
答案 1 :(得分:0)
除了Srikant的回答,这里还有另一种获取显示尺寸的方法:
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels;
这与Srikant的答案具有相同的高度和宽度。