lightbulb_outline Help shape the future of the Google Play Console, Android Studio, and Firebase. Start survey

다양한 밀도 지원

이 과정에서는 다양한 리소스를 제공하고 해상도에 독립적인 측정 단위를 사용하여 여러 가지 화면 밀도를 지원하는 방법을 보여줍니다.

밀도에 독립적인 픽셀 사용

레이아웃을 디자인할 때 피해야 할 공통적 함정은 간격이나 크기를 정의할 때 절대 픽셀을 사용하는 것입니다. 픽셀로 레이아웃 치수를 정의하면 화면 크기에 따라 픽셀 밀도가 달라져서 같은 개수의 픽셀이라도 서로 다른 기기에서 실제 크기가 달라질 수 있으므로 문제가 됩니다. 그러므로 치수를 정의할 때는 항상 dpsp 단위를 사용합니다. dp는 실제 픽셀 크기가 160dpi와 일치하는 밀도에 독립적인 픽셀입니다. sp는 같은 기본 단위지만 사용자가 선호하는 텍스트 크기에 맞게 조정됩니다(배율 독립적 픽셀). 그러므로 텍스트 크기를 정의할 때는 이 측정 단위를 사용해야 합니다(레이아웃 크기에는 사용할 수 없음).

동영상

DesignBytes: 밀도 독립적 픽셀


예를 들어 뷰 두 개 사이의 공백을 지정할 때는 px 말고 dp를 사용합니다.

<Button android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/clickme"
    android:layout_marginTop="20dp" />

텍스트 크기를 지정할 때는 항상 sp를 사용합니다.

<TextView android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="20sp" />

대체 비트맵 제공

Android는 화면 밀도가 다양한 기기에서 실행되므로 항상 일반화된 밀도 버킷(저밀도, 중간 밀도, 고밀도, 초고밀도) 각각에 맞는 비트맵 리소스를 제공해야 합니다. 이렇게 하면 모든 화면 밀도에서 우수한 그래픽 품질과 성능을 보여줄 수 있습니다.

이러한 이미지를 생성하려면 벡터 형식의 원시 리소스에서 시작하고, 다음의 크기 배율을 사용해 각 밀도에 대한 이미지를 생성해야 합니다.

  • xhdpi: 2.0
  • hdpi: 1.5
  • mdpi: 1.0 (기준)
  • ldpi: 0.75

이것은 xhdpi 기기에 200x200 이미지를 생성하는 경우, hdpi에 150x150 , mdpi에 100x100, ldpi 기기에 75x75로 동일한 리소스를 생성해야 한다는 것을 의미합니다.

생성된 이미지 파일을 res/의 적절한 하위 디렉터리에 넣으면 시스템에서 애플리케이션이 실행되는 기기의 화면 밀도에 따라 자동으로 알맞은 단위를 선택합니다.

MyProject/
  res/
    drawable-xhdpi/
        awesomeimage.png
    drawable-hdpi/
        awesomeimage.png
    drawable-mdpi/
        awesomeimage.png
    drawable-ldpi/
        awesomeimage.png

@drawable/awesomeimage를 참조하는 경우 항상 시스템은 화면의 dpi를 토대로 적합한 비트맵을 선택합니다.

mipmap/ 폴더에 런처 아이콘을 놓습니다.

res/...
    mipmap-ldpi/...
        finished_launcher_asset.png
    mipmap-mdpi/...
        finished_launcher_asset.png
    mipmap-hdpi/...
        finished_launcher_asset.png
    mipmap-xhdpi/...
        finished_launcher_asset.png
    mipmap-xxhdpi/...
        finished_launcher_asset.png
    mipmap-xxxhdpi/...
        finished_launcher_asset.png

참고: drawable/ 폴더가 아니라 res/mipmap-[density]/ 폴더에 모든 런처 아이콘을 넣어야 런처 앱이 최적 해상도 아이콘을 사용할 수 있습니다. Mipmap 폴더를 사용하는 자세한 방법은 프로젝트 관리 개요를 참조하세요.

애플리케이션에 사용할 아이콘 자산을 생성하는 방법에 대한 추가 도움말 및 지침은 아이콘 디자인 가이드라인을 참조하세요.