我现在做的应用屏幕左侧旋转的时候 程序有问题,会崩溃,所以想只允许用户可以向左侧和上方两个方向上旋转屏幕,想问一下大家有知道怎么实现吗?网上查到的资料都是怎么去固定一个方向的,没有找到这方面资料,希望了解的朋友告知一声,谢谢!
PHPz2017-04-17 17:22:37
<activity> 노드의 android:screenOrientation 속성은 이 작업을 완료할 수 있습니다.
으아아아this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
① 현재 Activity의 onSaveInstanceState(Bundle outState)를 호출하여 애플리케이션에 일부 데이터를 저장할 수 있습니다.
②그런 다음 onDestroy()를 호출하여 현재 활동을 삭제합니다
③onCreate() 또는 onRestoreInstanceState() 메서드를 호출하여 Activity를 다시 생성합니다(즉, 프로그램이 onCreate에서 코드를 다시 실행함)
추가로 설명해야 할 한 가지는 onSaveInstanceState(Bundle outState)를 사용하는 방법입니다. 이 메서드는 화면이 회전할 때 호출됩니다. 여기서 Bundle 매개변수는 화면이 회전하기 전의 시간을 캡슐화하는 것입니다. 데이터를 저장한 다음 onDestroy()를 호출하여 현재 활동을 삭제하고 마지막으로 onCreate(Bundle selectedInstanceState)를 다시 호출합니다. 이 경우 onCreate에서 활동을 다시 만들 때 outState가 saveInstanceState에 할당됩니다. 이전에 저장된 데이터는 다시 생성된 활동을 초기화하는 데 사용됩니다. 이는 가로 화면이든 세로 화면이든 관계없이 애플리케이션의 전체 실행 프로세스 동안 데이터 변경이 일관되어야 하기 때문에 매우 중요합니다. 화면이 바뀌었다고 해서 변경할 수는 없습니다.
또한 onSaveInstanceState(Bundle outState) 메소드는 화면이 회전할 때 반드시 실행되므로 이 메소드를 화면 회전용 모니터로 완벽하게 사용할 수 있습니다
예:
*Android에서는 ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE 및 ActivityInfo.SCREEN_ORIENTATION_PORTRAIT가 완전히 세로 또는 가로인 경우에만 반환할 수 있다고 규정하고 있으므로 가로 화면인지 세로 화면인지 판단하는 것은 간단한 문제가 아닙니다. , 이는 실제로는 거의 불가능합니다.
방법은 다음과 같습니다.
<uses-permission Android:name="android.permission.CHANGE_CONFIGURATION"></uses-permission>
여기에서 Android:configChanges 속성을 선언해야 합니다. 이 속성은 프로그램에서 캡처할 수 있는 이벤트 유형을 지정합니다. 여러 이벤트 유형은 |으로 구분됩니다.
여기에 방향이 없으면 프로그램에서 화면 변경 이벤트를 캡처할 수 없습니다.
정말로 할 수 없는 경우에는 현장에서 저에게 연락해 주시면 살펴보고 함께 진행하도록 도와드리겠습니다