2011-01-21 3 views
2

현재 화면 방향에 따라 다른 동작을하는 Android 애플리케이션에서 작업하고 있습니다.Android - 핸들 화면 오리엔테이션

getWindowManager(). getDefaultDisplay(). getRotation()을 사용하여 onCreate() 메서드에서 화면 방향을 가져 와서 관리합니다.

기본적으로 내 문제는 방향을 제어해야한다는 것입니다. 가로 모드에서 사용자가이를 결정하면 응용 프로그램은 세로 모드로 전환해야하며 세로 모드로 전환 한 다음 다시 가로로 전환 할 때까지는 그대로 유지해야합니다.

가로 모드에서 방향을 변경하려면 setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)을 사용하고 있습니다. 문제는 이걸 사용하여 풍경으로 돌아갈 수 없다는 것입니다. onCreate()에서 setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)을 사용하는 경우 화면이 가로 방향이므로 몇 초 후에 가로 모드로 다시 전환되는 것이 문제입니다.

다른 방법으로 관리 할 수 ​​있습니까? 기본적으로,보기가 세로 모드로 잠겨있을 때 호출되지 않기 때문에 (또는 onCreate 이외의 다른 곳에서는) 화면 방향 변경을 캐치하는 방법이 있습니까? 나는 그것에 대해 아무것도 찾을 수 없습니다 ...

어떤 아이디어를 환영합니다!

감사합니다.

+0

도움이 될 수 있습니다. http://stackoverflow.com/questions/4349353/intent-for-screen-orientation-change/4349364#4349364 –

답변

2

2 개의 레이아웃을 레이아웃 랜드와 레이아웃 포트에 하나씩 만들어보십시오. 장치 방향이 변경되면 자동으로 적용됩니다.

각각의 내부에는 세로보기 용과 가로보기 용의 두 가지 별개의 하위 레이아웃을 만들고 사용자의 취향에 맞게 가로보기를 변경하여 표시 여부를 변경합니다.

그래서 회전 변경을 전혀 처리 할 필요가 없습니다. Android에서 자동 변경을 관리하고 사용자 재정의를 관리하면됩니다.