Android 是否可能使屏幕工作区投入使用?
在服务中(即不在活动中)是否可以获得屏幕的工作区域,即屏幕高度减去顶部的状态栏高度和底部的软键空间(“返回”、“主页”等)Android 是否可能使屏幕工作区投入使用?,android,android-layout,android-screen,Android,Android Layout,Android Screen,在服务中(即不在活动中)是否可以获得屏幕的工作区域,即屏幕高度减去顶部的状态栏高度和底部的软键空间(“返回”、“主页”等) private DisplayMetrics displayMetrics = new DisplayMetrics(); WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); windowManager.getDefaultDispla
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设备(Nexus4上试用过)上,它给出的屏幕大小减去状态栏。如果您找到了一种更可靠的方法,请发布。以及Srikant的答案,下面是获取显示尺寸的另一种方法:
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels;
这给出了与Srikant答案相同的高度和宽度。我相信
DisplayMetrics
返回的高度不包括软键区域,但不包括状态栏。例如,Nexus4的宽度和高度为720x1280。DisplayMetrics
返回高度和宽度为720 x 1184。这个96像素的高度差异(大约是屏幕总高度的1/12)太大,无法作为通知栏,但正好可以作为软键区域。其他手机,如HTC Desire HD和Galaxy S2,其“返回”、“主页”等按钮位于屏幕区域之外,因此,DisplayMetrics
返回的高度是屏幕的实际高度。以下是获取状态栏高度的可靠方法: