적응형 아이콘(AdaptiveIconDrawable)은 개별 기기 기능 및 사용자 테마 설정에 따라 다르게 표시될 수 있습니다. 적응형 아이콘은 주로 홈 화면의 런처에서 사용되지만 바로가기, 설정 앱, 공유 대화상자 및 개요 화면에서도 사용됩니다. 적응형 아이콘은 모든 Android 폼 팩터에서 사용됩니다.
다양한 모양: 적응형 아이콘은 다양한 기기 모델에서 여러 가지 모양을 표시할 수 있습니다. 예를 들어 한 OEM 기기에서는 원형으로 표시되고 다른 기기에서는 모서리가 둥근 사각형 (정사각형과 원형 사이의 모양)으로 표시될 수 있습니다. 각 기기 OEM은 시스템에서 모든 적응형 아이콘을 동일한 모양으로 렌더링하는 데 사용하는 마스크를 제공해야 합니다.
그림 1. 적응형 아이콘은 기기마다 다른 다양한 마스크를 지원합니다.
시각적 효과: 적응형 아이콘은 사용자가 홈 화면에서 아이콘을 배치하거나 옮길 때 관심을 끌 수 있는 다양한 시각적 효과를 지원합니다.
그림 2. 적응형 아이콘에 표시되는 시각 효과의 예
사용자 테마 설정: Android 13 (API 수준 33)부터 사용자는 적응형 아이콘 테마를 설정할 수 있습니다. 사용자가 시스템 설정에서 테마 앱 아이콘을 사용 설정하고 런처에서 이 기능을 지원하는 경우 시스템은 사용자가 선택한 배경화면 및 테마의 색상을 사용하여 적응형 아이콘에 monochrome 레이어가 있는 앱의 앱 아이콘 색조 색상을 결정합니다. Android 16 QPR 2부터 Android는 자체 앱 아이콘을 제공하지 않는 앱의 앱 아이콘을 자동으로 테마로 지정합니다.
그림 3. 사용자의 배경화면과 테마에서 상속되는 적응형 아이콘
다음 시나리오에서는 홈 화면에 테마 앱 아이콘이 표시되지 않고 적응형 또는 표준 앱 아이콘이 대신 표시됩니다.
사용자가 테마 앱 아이콘을 사용 설정하지 않은 경우
앱에서 단색 앱 아이콘을 제공하지 않고 사용자의 기기가 Android 16 QPR 2보다 이전 버전의 Android에서 실행되는 경우
런처에서 테마 앱 아이콘을 지원하지 않는 경우
적응형 아이콘 디자인
적응형 아이콘이 다양한 모양, 시각적 효과, 사용자 테마를 지원하게 하려면 디자인이 다음 요구사항을 충족해야 합니다.
컬러 버전 아이콘의 두 개 레이어, 즉 포그라운드 및 백그라운드 레이어를 각각 제공해야 합니다. 레이어는 벡터 또는 비트맵일 수 있지만 벡터가 더 좋습니다.
그림 4. 포그라운드 및 백그라운드 레이어를 사용하여 정의된 적응형 아이콘 표시된 66x66 안전 영역은 OEM에서 정의한 마스크 모양에 의해 잘리지 않는 영역입니다.
그림 5. 원형 마스크가 적용된 포그라운드 및 백그라운드 레이어가 함께 표시되는 예
앱 아이콘의 사용자 테마 설정을 지원하려면 흑백 버전 아이콘을 구성하는 하나의 레이어를 제공해야 합니다.
그림 6. 단색 아이콘 레이어 (왼쪽)와 색상 미리보기의 예 (오른쪽)
모든 레이어를 108x108dp 크기로 설정합니다.
가장자리가 깔끔한 아이콘을 사용합니다. 레이어에 아이콘 윤곽선 주위에 마스크나 배경 그림자가 있으면 안 됩니다.
48x48dp 이상의 로고를 사용합니다. 아이콘의 안쪽 66x66dp가 마스크된 표시 영역 내에 나타나므로 66x66dp를 초과해서는 안 됩니다.
레이어의 네 면에 있는 바깥쪽 18dp는 마스크 처리와 시차 또는 펄싱과 같은 시각적 효과를 만드는 데 사용하도록 예약되어 있습니다.
선택적 속성인 android:roundIcon는 원형 아이콘이 있는 앱을 나타내는 런처에서 사용되며, 앱의 아이콘에 원형 배경이 디자인의 핵심 부분으로 포함된 경우 유용할 수 있습니다. 이러한 런처는 원형 마스크를 android:roundIcon에 적용하여 앱 아이콘을 생성해야 하며, 이 보장을 통해 로고를 약간 확대하고 잘렸을 때 원형 배경이 전체로 표시되도록 하는 등 앱 아이콘의 모양을 최적화할 수 있습니다.
다음 코드 스니펫은 이러한 속성을 모두 보여주지만 대부분의 앱은 android:icon만 지정합니다.
그런 다음 적응형 아이콘을 res/mipmap-anydpi-v26/ic_launcher.xml에 저장합니다. <adaptive-icon> 요소를 사용하여 아이콘의 포그라운드, 백그라운드, 단색 레이어 리소스를 정의합니다. <foreground>, <background>, <monochrome> 내부 요소는 벡터 이미지와 비트맵 이미지를 모두 지원합니다.
다음 예에서는 <adaptive-icon> 내에서 <foreground>, <background>, <monochrome> 요소를 정의하는 방법을 보여줍니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-08-22(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-08-22(UTC)"],[],[],null,["# Adaptive icons\n\nAn adaptive icon, or\n[`AdaptiveIconDrawable`](/reference/android/graphics/drawable/AdaptiveIconDrawable),\ncan display differently depending on individual device capabilities and user\ntheming. Adaptive icons are primarily used by the launcher on the home screen,\nbut they can also be used in shortcuts, the Settings app, sharing dialogs, and\nthe overview screen. Adaptive icons are used across all Android form factors.\n\nIn contrast to [bitmap\nimages](/guide/topics/resources/drawable-resource#Bitmap), adaptive icons can\nadapt to different use cases:\n\n- **Different shapes:** an adaptive icon can display a variety of shapes\n across different device models. For example, it can display a circular shape\n on one OEM device, and display a squircle (a shape between a square and a\n circle) on another device. Each device OEM must provide a mask, which the\n system uses to render all adaptive icons with the same shape.\n\n **Figure 1.** Adaptive icons support a variety of masks, which vary from one device to another.\n- **Visual effects:** an adaptive icon supports a variety of engaging visual\n effects, which display when users place or move the icon around the home\n screen.\n\n **Figure 2.** Examples of visual effects displayed by an adaptive icon. **Note:** Animated visual effects are generated by supported launchers. Visual effects might vary from one launcher to another.\n- **User theming:** starting with Android 13 (API level 33), users can theme\n their adaptive icons. If a user enables themed app icons in their system\n settings, and the launcher supports this feature, the system uses the\n coloring of the user's chosen wallpaper and theme to determine the tint\n color of the app icons for apps that have a `monochrome` layer in their\n adaptive icon. Starting with Android 16 QPR 2, Android automatically themes\n app icons for apps that don't provide their own.\n\n **Figure 3.** Adaptive icons inheriting from the user's wallpaper and themes.\n\n In the following scenarios, the home screen doesn't display the themed\n app icon, and instead displays the adaptive or standard app icon:\n - If the user doesn't enable themed app icons.\n - If your app doesn't provide a monochromatic app icon and the users device runs on an earlier version of Android than Android 16 QPR 2.\n - If the launcher doesn't support themed app icons.\n\nDesign adaptive icons\n---------------------\n\nTo ensure that your adaptive icon supports different shapes, visual effects, and\nuser theming, the design must meet the following requirements:\n\n- You must provide two layers for the color version of the icon: one for the\n foreground, and one for the background. The layers can be either vectors or\n bitmaps, though vectors are preferred.\n\n **Figure 4.** Adaptive icons defined using foreground and background layers. The 66x66 *safe zone* depicted is the area that is never clipped by a shaped mask defined by an OEM. **Figure 5.** An example of how foreground and background layers look together with a circular mask applied.\n- If you want to support user theming of app icons, provide a single layer for\n the monochrome version of the icon.\n\n **Figure 6.** A monochromatic icon layer (left) with examples of color previews (right).\n- Size all layers to 108x108 dp.\n\n- Use icons with clean edges. The layers must not have masks or background\n shadows around the outline of the icon.\n\n- Use a logo that's at least 48x48 dp. It must not exceed 66x66 dp,\n because the inner 66x66 dp of the icon appears within the masked\n viewport.\n\nThe outer 18 dp on each of the four sides of the layers is reserved for\nmasking and to create visual effects such as parallax or pulsing.\n| **Caution:** If you don't update your launcher icon with the necessary layers, the icon neither looks consistent with other icons displayed by the system nor supports visual effects.\n\nTo learn how to create adaptive icons using Android Studio, see our [Android App\nicon Figma\ntemplate](https://www.figma.com/community/file/1131374111452281708)\nor [Android Studio documentation for creating launcher\nicons](/studio/write/image-asset-studio#create-adaptive). Also,\ncheck out the blog post [Designing Adaptive\nIcons](https://medium.com/google-design/designing-adaptive-icons-515af294c783)\n.\n\nAdd your adaptive icon to your app\n----------------------------------\n\nAdaptive icons, just like non-adaptive icons, are specified [using the\n`android:icon` attribute in the app\nmanifest](/guide/topics/manifest/manifest-intro#iconlabel).\n\nAn optional attribute, `android:roundIcon`, is used by launchers that represent\napps with circular icons, and may be useful if your app's icon includes a\ncircular background as a core part of its design. Such launchers are required to\ngenerate app icons by applying a circular mask to `android:roundIcon`, and this\nguarantee may enable you to optimize the appearance of your app icon by, for\nexample, slightly enlarging the logo and ensuring that when cropped, the\ncircular background is full bleed.\n\nThe following code snippet illustrates both of these attributes, but most apps\nonly specify `android:icon`: \n\n```xml\n\u003capplication\n ...\n android:icon=\"@mipmap/ic_launcher\"\n android:roundIcon=\"@mipmap/ic_launcher_round\"\n ...\u003e\n\u003c/application\u003e\n```\n\nNext, save your adaptive icon to `res/mipmap-anydpi-v26/ic_launcher.xml`. Use\nthe `\u003cadaptive-icon\u003e` element to define the foreground, background, and\nmonochromatic layer resources for your icons. The `\u003cforeground\u003e`,\n`\u003cbackground\u003e`, and `\u003cmonochrome\u003e` inner elements support both\nvector and bitmap images.\n\nThe following example shows how to define `\u003cforeground\u003e`, `\u003cbackground\u003e`, and\n`\u003cmonochrome\u003e` elements inside `\u003cadaptive-icon\u003e`: \n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n...\n\u003cadaptive-icon xmlns:android=\"http://schemas.android.com/apk/res/android\"\u003e\n \u003cbackground android:drawable=\"@drawable/ic_launcher_background\" /\u003e\n \u003cforeground android:drawable=\"@drawable/ic_launcher_foreground\" /\u003e\n \u003cmonochrome android:drawable=\"@drawable/ic_launcher_foreground\" /\u003e\n\u003c/adaptive-icon\u003e\n...\n```\n\nThe foreground and monochrome layers are using the same\ndrawable. However, you can create separate drawables for each layer if needed.\n\nYou can also define drawables as elements by *inlining* them into the\n`\u003cforeground\u003e`, `\u003cbackground\u003e`, and `\u003cmonochrome\u003e` elements. The following\nsnippet shows an example of doing this with the foreground drawable. \n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n...\n\u003cforeground\u003e\n \u003cinset\n android:insetBottom=\"18dp\"\n android:insetLeft=\"18dp\"\n android:insetRight=\"18dp\"\n android:insetTop=\"18dp\"\u003e\n \u003cshape android:shape=\"oval\"\u003e\n \u003csolid android:color=\"#0000FF\" /\u003e\n \u003c/shape\u003e\n \u003c/inset\u003e\n\u003c/foreground\u003e\n...\n```\n\nIf you want to apply the same mask and visual effect to your shortcuts as\nregular adaptive icons, use one of the following techniques:\n\n- For static shortcuts, use the `\u003cadaptive-icon\u003e` element.\n- For dynamic shortcuts, call the [`createWithAdaptiveBitmap()`](/reference/android/graphics/drawable/Icon#createWithAdaptiveBitmap(android.graphics.Bitmap)) method when you create them.\n\nFor more information about implementing adaptive icons, see [Implementing\nAdaptive\nIcons](https://medium.com/google-developers/implementing-adaptive-icons-1e4d1795470e).\nFor more information about shortcuts, see [App shortcuts\noverview](/guide/topics/ui/shortcuts).\n\nAdditional resources\n--------------------\n\nSee the following resources for additional information about designing and\nimplementing adaptive icons.\n\n- [Figma community page template](https://www.figma.com/community/file/1131374111452281708)\n- [Understanding Android Adaptive Icons](https://medium.com/google-design/understanding-android-adaptive-icons-cee8a9de93e2)\n- [Designing Adaptive Icons](https://medium.com/google-design/designing-adaptive-icons-515af294c783)\n- [Implementing Adaptive Icons](https://medium.com/google-developers/implementing-adaptive-icons-1e4d1795470e)\n- [Create app icons in Android Studio](/studio/write/create-app-icons#create-adaptive)\n- [Google Play icon design specifications](/google-play/resources/icon-design-specifications)"]]