찾다

 >  Q&A  >  본문

android - 安卓怎么固定屏幕两个方向旋转?

我现在做的应用屏幕左侧旋转的时候 程序有问题,会崩溃,所以想只允许用户可以向左侧和上方两个方向上旋转屏幕,想问一下大家有知道怎么实现吗?网上查到的资料都是怎么去固定一个方向的,没有找到这方面资料,希望了解的朋友告知一声,谢谢!

怪我咯怪我咯2803일 전679

모든 응답(2)나는 대답할 것이다

  • PHPz

    PHPz2017-04-17 17:22:37

    다음 사항을 알아두셔야 합니다

    1. 설정

    <activity> 노드의 android:screenOrientation 속성은 이 작업을 완료할 수 있습니다.

    으아아아

    2. 화면 회전 효과를 강제로 켭니다

    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);

    3. 모니터 화면 회전

    ① 현재 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 속성을 선언해야 합니다. 이 속성은 프로그램에서 캡처할 수 있는 이벤트 유형을 지정합니다. 여러 이벤트 유형은 |으로 구분됩니다.

    여기에 방향이 없으면 프로그램에서 화면 변경 이벤트를 캡처할 수 없습니다.

    세 번째: Activity에서 onConfigurationChanged 메서드를 다시 작성

    으아아아

    정말로 할 수 없는 경우에는 현장에서 저에게 연락해 주시면 살펴보고 함께 진행하도록 도와드리겠습니다

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 17:22:37

    제 질문에 직접 대답은 안 하셨지만 오늘 말씀하신 내용을 잘 활용했습니다.

    회신하다
    0
  • 취소회신하다