2013-07-30 35 views

回答

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

我相信'DisplayMetrics'返回的高度不包括软键区域**,但不包括状态栏。例如,Nexus 4的宽度,高度是720 x 1280.“DisplayMetrics”返回高度,宽度为720 x 1184.这种高度为96像素(大约为屏幕总高度的1/12)的差异太大成为通知栏,但恰到好处成为软键区。其他手机,如HTC Desire HD和Galaxy S2在屏幕区域之外都有“后退”,“主页”等按钮,因此DisplayMetrics返回的高度就是屏幕的实际高度。 –

+1

以下是获取状态栏高度的可靠技术:http://mrtn.me/blog/2012/03/17/get-the-height-of-the-status-bar-in-android/ –

0

除了Srikant的答案,这里是让显示器尺寸的另一种方式:

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

这给出了同样的高度,宽度Srikant的答案。