2011-12-19 2 views
11

아이스크림 샌드위치가있는 기기는 화면상의 소프트 키를 사용할 수 있습니다. 이는 화면의 일부가이 키로 가져간 것을 의미합니다. 현실적인 화면 해상도를 얻고 해상도에서 소프트 키가 차지하는 공간을 뺀 값을 구해야합니다.아이스크림 샌드위치의 실제 화면 해상도 얻기

나는 다음을 시도했습니다

하지만, 어느 작품 :

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth(); 
int height = display.getHeight(); 
Log.d("SCREEN RES", "Width: " + width + ". Height: " + height); 

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
height = metrics.heightPixels; 
width = metrics.widthPixels; 
Log.d("SCREEN RES", "Width: " + width + ". Height: " + height); 

다음은 출력입니다 :

12-19 20:18:42.012: D/SCREEN RES(20752): Width: 1196. Height: 720 
12-19 20:18:42.012: D/SCREEN RES(20752): Width: 1196. Height: 720 

실제 화면 해상도는 1280 X 720 픽셀이 아닌 1196 X 720 픽셀입니다.

아이디어가 있으십니까?

내가 응용 프로그램 전체 화면을 만들기 위해 다음 코드를 사용하고

편집 :

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 
+0

결론을 남겨 : http://stackoverflow.com/questions/11824193/htc-sensation-real-resolution – thecr0w

답변

9

이 API는 응용 프로그램이 사용할 수있는 픽셀의 수를 반환, 그래서 이것은 올바른 결과입니다 . 다음과 같이

API 레벨 17 (안드로이드 4.2 젤리 빈)에서
+0

내가 넣어 경우 어떻게 이 같은 전체 화면 모드의 앱? getWindow(). getDecorView(). setSystemUiVisibility (2);'. 이렇게하면 소프트 키가 제거되고 전체 화면과 폭 1280 픽셀을 모두 사용할 수 있습니다. –

+0

이전 주석을 편집 할 수는 없지만 2 =='View.SYSTEM_UI_FLAG_HIDE_NAVIGATION'. –

+9

@Romain Guy - 앱이 화면의 전체 크기를 알아야하는 상황이 있습니다. 예를 들어 디자이너는 앱에서 사용할 수있는 공간이 아닌 기기 화면의 중앙에 배치 할 수 있습니다. 따라서 앱에서 사용할 수있는 픽셀 수를 반환하는 API가 필요하지만 실제 화면 크기를 반환하는 API가 필요합니다. –

1

, 당신은 화면의 실제 크기를 얻을 수 있습니다 :

Point size = new Point(); 
Display display = getWindowManager().getDefaultDisplay(); 
display.getRealSize(size); 

size 이제 방향에 따라 디스플레이 크기가 포함됩니다 (예 : X 것이다. 사용자에게/우 상대가 아닌 장치) 실제 해상도를 얻는 방법에 대한

관련 문제