[Android] 다중 창 환경에서 창 크기 지정

4126 단어 AndroidNAndroid

이 보도에 관하여


Android N의 다중 창 환경에서는 창 크기를 가져오면 어떤 값이 반환되는지 설명합니다.
구체적으로 다음 API의 반환 값을 조사했습니다.
  • getActivity().getWindowManager().getDefaultDisplay().getSize(out);
  • 다음은 Display.getSize()로 기록됩니다.
  • getActivity().getWindowManager().getDefaultDisplay().getRealSize(out);
  • 다음은 Display.getRealSize()로 기록됩니다.
  • 이러한 API Reference는 다음과 같습니다.
  • Display.getSize()
  • Display.getRealSize()
  • 결론

  • Display.getSize()
  • 다중 창 상태에 대응하는 창 크기를 얻을 수 있음
  • 다중 창이 아닌 경우 상태 표시줄의 크기를 포함하지만 다중 창 상태에서는 포함하지 않습니다
  • Display.getRealSize()
  • 다중 창 상태의 영향을 받지 않고 터미널 디스플레이 크기를 얻을 수 있음
  • 컨디션


    컨디션

  • 모델: Nexus 6P
  • OS:Android 7.1.1
  • 터미널 디스플레이 크기: 2560x1440
  • 코드


    개별 API 값을 화면에 표시하는 응용 프로그램이 만들어졌습니다.
    https://github.com/hshiozawa/MultiWindowLifecycleTester
    표시 부분의 코드는 다음 Java 파일에 있습니다.
    https://github.com/hshiozawa/MultiWindowLifecycleTester/blob/master/app/src/main/java/com/hjm/multiwindowtester/fragment/BaseFragment.java
    보태다
    여러 창의 경우 이 값을 얻으려면, onMulti WindowModeChanged () 에서 값을 얻는 것이 좋습니다.통상적인 프래그먼트의 소총 주기상 여러 창의 경우 제대로 얻지 못하는 경우가 있다.
    ref: https://commonsware.com/blog/2016/06/07/isinmultiwindowmode-race-condition.html

    결실


    다중 창이 아닌 환경


    초상화


    다중 창이 아닌 초상화의 API 크기는 다음과 같습니다.
  • getSize(): w=1440, h=2392(빨간 테두리)
  • getRealSize(), w=1440, h=2560(녹색틀)

  • 훑어보다


    다중 창이 아닌 경관에서 API의 크기는 다음과 같습니다.
  • getSize(): w = 2392, h = 1440(빨간 테두리)
  • getRealSize(), w = 2560, h = 1440(녹색 상자)

  • 다중 창 환경


    초상화 창 위쪽


    여러 창의 초상화에서 창의 위쪽에 창이 표시되면 API의 크기는 다음과 같습니다.
  • getSize(): w=1439, h=1134(빨간 테두리)
  • getRealSize(), w=1440, h=2560(녹색틀)

  • 그림 창 아래쪽


    다중 창의 초상화 아래에 창이 표시되면 API의 크기는 다음과 같습니다.
  • getSize(): w=1439, h=1134(빨간 테두리)
  • getRealSize(), w=1440, h=2560(녹색틀)

  • 풍경창 오른쪽


    다중 창의 시야각에서 오른쪽에 창이 표시되면 API의 크기는 다음과 같습니다.
  • getSize(): w=1176, h=1355(빨간 테두리)
  • getRealSize(), w = 2560, h = 1440(녹색 상자)

  • 풍경창 좌측


    여러 창의 시야각에서 왼쪽에 창이 표시되면 API의 크기는 다음과 같습니다.
  • getSize(): w=1176, h=1355(빨간 테두리)
  • getRealSize(), w = 2560, h = 1440(녹색 상자)
  • 좋은 웹페이지 즐겨찾기