[Android] getRotation()


광고 한번만 클릭 부탁드립니다^^


포스팅을 보시는 분들을 위해 노력 하는 블로거를 위하여! 부탁드립니다. 재미 삼아 포스팅을 정리하지만, 광고를 달아보았습니다. 얼마나 열심히 할 수 있을지...의문이지만요^^ 

Subject : [Android] getRotation()

최종수정일 : 2011.08.03

안녕하세요~^^
음~ 카메라 사용하면서 회전이 되었는지 안되었는지 알아보기 위해서 사용하였습니다.
물론 다른 용도로 사용이 가능합니다.

당연! 센서겠죠? Portrait, landscape 2가지 모드가 있는데, 3D OpenGL 에 출력을 하기위해서 현재 Device 가 어떻게 되어있는지 알아야 합니다.
그리고 0, 90, 180, 270 4가지 회전중에 현재 어떤 mode를 하고 있는냐에 따라서 Axis 를 변경해 주어야 합니다.
지금은 getRotation() 함수를 사용하는 것에만 집중하도록 하겠습니다.

Axis를 맞추는 과정은 .... 후에 다루도록 하겠습니다.  


by 퓨림노

글을 작성하겠습니다.

다른 블로그를 보면 어디에 넣어야 하는지, 적혀있지 않아서 -ㅅ-/ 살짝 놀랬습니다. 

저는 화면 mode에 따라서 sensor의 Axis를 변경하려고 합니다. 그래서 다음과 같은 곳에 넣어두었습니다. 
 

public void onSensorChanged(SensorEvent event) {
...
 
  if (mGravity != null && mGeoMagnetic != null) {
   ...
 // get Rotattion - 항상 90도로 나옴 ( 당연한 결과 Landscape 이니깐 )
    WindowManager wm = (WindowManager)getSystemService( Context.WINDOW_SERVICE );
    Display disp = wm.getDefaultDisplay();				
    int orientation = disp.getRotation();
				
    Vanishing.getInstance().SetRotationofScreen( orientation );
				
    switch( orientation )
    {
      case Surface.ROTATION_0:
          Toast.makeText(MainActivity.this, "Rotation 0", Toast.LENGTH_SHORT ).show();					 
          break;
      case Surface.ROTATION_90:					
          Toast.makeText(MainActivity.this, "Rotation 90", Toast.LENGTH_SHORT ).show();
          break;
      case Surface.ROTATION_180:
          Toast.makeText(MainActivity.this, "Rotation 180", Toast.LENGTH_SHORT ).show();
          break;
      case Surface.ROTATION_270:
          Toast.makeText(MainActivity.this, "Rotation 270", Toast.LENGTH_SHORT ).show();
          break;		
     }
  }
}




그리고 출력은 Canvas 화면에 출력하였습니다. 
그리고 딱히 Reference 를 달지 않겠습니다. 이번껀 T_T 창을 닫아버렸네요... 



Reference
[1] Android Developers ( http://android-developers.blogspot.com/2010/09/one-screen-turn-deserves-another.html ) ( 한글버전 : http://catnest.tistory.com/37 )
     - 음...Sensor 를 다루는 개발자라면 꼭한번 읽어 보길 바랍니다. 

[2] Being a Developer ( http://neodreamer.tistory.com/460 )
 

댓글

Designed by JB FACTORY