- 화면 해상도 알아내기 -

방법 #1
 
1 DisplayMetrics metrics = new DisplayMetrics();
2 getWindowManager().getDefaultDisplay().getMetrics(metrics);
3   
4 int ScreenWidth  = metrics.widthPixels
5 int ScreenHeight = metrics.heightPixels


방법 #2
 
1 WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
2 Display dsp = wm.getDefaultDisplay();
3   
4 int height = dsp.getHeight();
5 int width = dsp.getWidth();

- 화면 상태 확인하기 -

현재 화면이 가로인지 새로인지 확인하는 방법은 화면 해상도를 확인하는 방법도 있겠지만 API 에서 제공하는 함수로도 확인 할 수 있다. 가로 혹은 세로 해상도가 같은 경우에는 API 함수를 이용하는 것이 보다 정확할 것이다.

Android 2.1 이하에서는 getOrientation() 만 동작하며 Android 2.2 이상에서는 getOrientation() 과 getRotation() 이 동작을 한다.

Android 2.1 이하
 
1 WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
2 Display disp = wm.getDefaultDisplay();
3   
4 int orientation = disp.getOrientation(); // Android 2.1
5 Log.i( "Orientation", "orientation : " + orientation );            

Android 2.2 이상
 
01 WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
02 Display disp = wm.getDefaultDisplay();
03   
04 int rotation = disp.getRotation(); // Android 2.2
05 Log.i( "Rotation", "rotation : " + rotation );
06   
07 switch ( rotation )
08 {
09 case Surface.ROTATION_0: 
10     Log.i( "Roation", "Portrait : 0" ); 
11     break;
12       
13 case Surface.ROTATION_90:
14     Log.i( "Roation", "Landscape : 90" );
15     break;
16       
17 case Surface.ROTATION_180:
18     Log.i( "Roation", "Portrait : 180" );
19     break;
20       
21 case Surface.ROTATION_270:
22     Log.i( "Roation", "Landscape : 270" );
23     break;
24 }    

+ Recent posts