티스토리 뷰

Mobile/Android

[Android] drawable과 mipmap

풍요로운 해구름 2018. 5. 3. 01:19

안드로이드의 이미지는 drawable과 mipmap 폴더에 저장할 수 있습니다. mipmap 폴더는 런처아이콘 이미지를 위한 폴더라고 하는데, 런처아이콘을 mipmap에 넣을 때와 drawable에 넣을 때 어떤 차이가 발생할까요?

일단 drawable, mipmap의 차이를 정리하면 아래와 같습니다.

구분 drawable mipmap
목적 모든 종류의 이미지 저장 런처 아이콘 이미지 저장
선택되는 이미지 크기 디바이스 픽셀밀도에 따라 달라짐 이미지 크기에 따라 달라짐
지원버전 모든 버전 Android 2.3 Honeycomb (API 11)
사용예시 android:background="@drawable/ic_image" android:icon="@mipmap/ic_launcher"


drawable에 런처아이콘을 저장해두면 안드로이드는 픽셀밀도에 따라 hdpi, xhdpi 등의 이미지 크기를 결정하여 사용합니다. 예를들어 픽셀밀도가 낮은 갤럭시s3에서는 hdpi 폴더의 이미지가 출력된다면, 픽셀밀도가 높은 갤럭시s9에서는 xxhdpi의 이미지가 출력되게 됩니다.

mipmap은 이와 다르게 동작합니다. 안드로이드는 디바이스의 픽셀밀도가 아니라 출력되는 이미지의 크기에 따라서 hdpi, xhdpi, xxhdpi 등의 이미지 크기를 결정합니다. 예를들어 런처 아이콘 크기를 50dip로 결정하면 mdpi의 이미지가 사용되며, 런처 아이콘의 크기를 100dip로 설정하면 xhdpi 폴더의 이미지가 출력되는 식입니다.

안드로이드에서는 어린이, 노약자, 시각장애인을 위한 빅런처 모드를 제공합니다. 빅런처 모드는 런처아이콘 이미지를 확대하여 출력하는 기능입니다. 이 때 drawable에 런처이미지를 넣어두면 아이콘이 확대되면서 뭉개지게 됩니다. 반면에 mipmap에 런처아이콘을 넣어두면 런처 아이콘 크기가 커져도 이미지가 깨지지 않도록 안드로이드 시스템이 적절한 크기의 이미지를 실시간으로 선택하여 출력하게 됩니다.



댓글
  • 프로필사진 뚠님 안녕하세요! 글을 보고 한가지 질문을 드립니다.
    4.0xxxhdpi 해상도를 갖는 기기는 왜 drawable의 xxhdpi의 이미지를 가져와 그리는지 궁금하네요..
    혹시나 알고 계시는 내용이 있으시면 답변을 부탁 드립니다! 감사합니다!
    2018.08.02 10:39 신고
댓글쓰기 폼