[기술 면접 질문] 디바이스 해상도 지원 layout 설계 방법

0

기술 면접 준비

목록 보기
10/19
post-thumbnail

[기술 면접 질문] 디바이스 해상도 지원 layout 설계 방법

📝요약

디바이스 해상도를 지원하기 위한 layout 설계 방법으로는, 거리/크기를 정의할 때 dp 단위 사용하기, 텍스트 크기를 정의할 때 sp 단위 사용하기, ViewConfiguration 클래스 사용하기, 해상도별 비트맵 이미지 제공하기, 벡터 그래픽 사용하기 등이 있습니다.

📌참고자료

거리/크기를 정의할 때 밀도 독립형 픽셀(dp) 사용

  • 1dp = 중밀도(160dpi)에서 1px과 동일한 가상 픽셀 단위
  • px = dp * (dpi / 160)

텍스트 크기를 정의할 때 확장 가능한 픽셀(sp) 사용

  • 기본적으로 dp와 같은 크기
  • 사용자가 선호하는 텍스트 크기에 따라 조절됨
  • 레이아웃 크기에는 절대 사용하면 X

ViewConfiguration 클래스

  • Android 시스템 UI에 사용되는 일반적인 거리,속도,시간을 정의
  • 예) 스크롤 기준점으로 사용하는 픽셀 단위 거리: ViewConfiguration.getScaledTouchSlop()

해상도별 비트맵 제공

  • 비트맵 그래픽이란?
    • 서로 다른 점(픽셀)들의 조합으로 그려지는 이미지 표현 방식
    • 화려하고 정교한 표현 가능, 주로 사진 이미지에 사용됨
  • 각 비트맵의 해상도별 버전 제공해야
    • 이미지 파일 res/ 아래 적절한 하위 디렉토리에 배치
    • 시스템이 @drawable/비트맵을 참조할 때마다, 시스템이 화면 해상도에 따라 적절한 비트맵 선택
  • 제공하지 않을 경우, 해상도별 비트맵 이미지 크기 조정됨 → 크기 조정 아티팩트(잡음) 발생
  • 구성 한정자
    • 6가지 기본 밀도 간 크기 조정 비율: 3:4:6:8:12:16

벡터 이미지 사용

  • 여러 밀도별 이미지 만드는 대신, 하나의 벡터 그래픽 사용
  • 벡터 그래픽이란?
    • XML로 경로와 색상을 정의하는 이미지 표현 방식
    • 일반적으로 사진이 아닌 아이콘/삽화에 적합
    • SVG(Scalable Vector Graphics) 파일로 제공되는 경우가 많음
      → Android에서는 이 형식 지원 X, 벡터 drawable 형식으로 변환해야

mipmap 디렉토리에 앱 아이콘 지정

  • 일부 앱 런처는 기기의 해상도보다 최대 25% 더 크게 앱 표시
    -> drawable 디렉터리가 아닌 mipmap 디렉터리에 저장
  • drawable 디렉터리와 달리 mipmap 디렉터리는 APK에 유지됨
profile
Be able to be vulnerable, in search of truth

0개의 댓글