2012-04-30 2 views
2

저는 displaymetrics를 사용하여 장치의 화면 크기를 가져옵니다. 스마트 폰에서는 잘 작동하지만 태블릿에서는 화면 너비와 높이의 2/3을 반환합니다. 아무도 왜 저에게 말해 줄 수 있습니까?android displaymetrics는 화면 크기의 2/3을 반환합니다.

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
int screenheight = metrics.heightPixels; 
int screenwidth= metrics.widthPixels; 

답변

0

당신은 밀도가 확장되지 않습니다 코드의

. 대신 getRealMetrics()을 시도 또한

int screenHeight = metrics.heightPixels * getResources().getDisplayMetrics().density; 
int screenWidth = metrics.widthPixels * getResources().getDisplayMetrics().density; 

(WindowManager) context.getSystemService(Context.WINDOW_SERVICE).getDefaultDisplay().getWidth(); 
1

:

이 시도

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getRealMetrics(metrics); 

이 API는 공식적으로 API 17에서 추가되었다,하지만 내 제한된 테스트에서 제대로 일 것 4.0 기기에서도 그렇듯이 이전에는 숨겨진 API 였을 수도 있습니다.

공식 문서 here 다른 API가 텍스트보다 더 기대하는 이유가 더 많은 것으로 보입니다.

이 API가 작동하지 않는 ICS 장치가있는 경우 here과 같은 대체 장치를 사용해 볼 수도 있습니다.

관련 문제