2013-07-30 1 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에서 시도)에서는 화면 크기에서 상태 표시 줄을 뺀 값을 제공합니다. 더 신뢰할 수있는 방법을 찾은 경우 게시하십시오.

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

이 Srikant의 대답과 같은 높이, 폭을 제공합니다

+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의 대답은, 여기에 디스플레이 크기를 얻기의 또 다른 방법입니다.

관련 문제