투케이2K

996. (Android/Java) 안드로이드 Edge-to-Edge 엣지 투 엣지 화면 디스플레이 레이아웃 정리 - 안드로이드 15 디스플레이 본문

Android

996. (Android/Java) 안드로이드 Edge-to-Edge 엣지 투 엣지 화면 디스플레이 레이아웃 정리 - 안드로이드 15 디스플레이

투케이2K 2025. 6. 5. 19:19

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java / Kotlin

 

[설명 정리]

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Java / Kotlin

- 개발 툴 : AndroidStudio

- 기술 구분 : 안드로이드 15 / Edge-to-Edge / 디스플레이

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[설명 정리]
// --------------------------------------------------------------------------------------

1. Edge-to-Edge (엣지 투 엣지) 란 안드로이드 휴대폰 디스플레이 화면에서 Status Bar 와 Navigation Bar 영역까지 콘텐츠를 표시하여 화면 전체를 활용할 수 있는 UI 모드입니다

  >> Status Bar : 상태바 영역으로 상단 배터리 및 안테나가 표시 되는 부분

  >> Navigation Bar : 네비게이션바 영역으로 하단 휴대폰 뒤로 가기 및 홈 화면 이동 부분이 표시 되는 부분


2. Edge-to-Edge (엣지 투 엣지) 는 안드로이드 15 (TargetSdk 35) 에서 화면 공간을 최대한 활용해 유저들에게 더 몰입감 있는 경험을 제공하기 위해 등장 되었습니다


3. Edge-to-Edge (엣지 투 엣지) 는 안드로이드 개발 시 build.gradle 파일 TargetSdk 35 (안드로이드 15) 설정 시 자동으로 활성화 됩니다


4. Edge-to-Edge (엣지 투 엣지) 레이아웃 적용 시 고려 사항 : 

  >> Edge-to-edge 디스플레이 활성화 : 앱이 SDK 35 이상을 타겟팅하는 경우, 안드로이드 15 이상의 기기에서는 자동으로 edge-to-edge 디스플레이가 활성화됩니다

  >> 시각적 겹침 처리 : 앱의 일부 뷰가 시스템 바 뒤에 그려질 수 있으므로, 겹침 문제를 해결하기 위해 인셋을 사용해 처리해야합니다

    - 인셋 (Inset) : 화면의 특정 영역이 시스템 UI (예: 상태 바, 내비게이션 바) 와 교차하는 부분을 나타내는 개념

    - 인셋 종류 : 
    
      * System Bars Insets (상태 바 및 내비게이션 바 가 화면에 표시되는 Y축 영역)

      * Display Cutout Insets (일부 디바이스의 화면에 존재하는 컷아웃 (예: 노치, 카메라 홀) 의 위치와 크기)

      * System Gesture Insets (시스템 제스처 (예: 홈 제스처, 뒤로 가기 제스처) 가 우선적으로 사용되는 영역)

  >> 시스템 바 뒤에 스크림 표시 고려 : 시스템 바 뒤에 스크림 (반투명한 오버레이) 을 추가하는 것을 고려해볼 수 있습니다


5. Edge-to-Edge (엣지 투 엣지) 적용 방법 : 

  >> build.gradle 파일 의존성 설정 (Groovy)

  dependencies {
      
      def activity_version = activity_version
      
      // Java language implementation
      implementation 'androidx.activity:activity:$activity_version'
      
      // Kotlin
      implementation 'androidx.activity:activity-ktx:$activity_version'
  }


  >> Activity의 onCreate에서 enableEdgeToEdge 호출 더 넓은 화면을 수동으로 사용 설정 (setContentView 전에 호출해야 합니다)

  @Override
  protected void onCreate(@Nullable Bundle savedInstanceState) {
    EdgeToEdge.enable(this); // [enableEdgeToEdge 호출]
    
    super.onCreate(savedInstanceState);
    ...
  }

// --------------------------------------------------------------------------------------





// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

[안드로이드 디벨로퍼 사이트]

https://developer.android.com/develop/ui/views/layout/edge-to-edge?hl=ko

// --------------------------------------------------------------------------------------
 
반응형
Comments