![](https://developer.android.com/static/guide/practices/ui_guidelines/images/article_icons_header.png)

An adaptive icon, or
[`AdaptiveIconDrawable`](https://developer.android.com/reference/android/graphics/drawable/AdaptiveIconDrawable),
can display differently depending on individual device capabilities and user
theming. Adaptive icons are primarily used by the launcher on the home screen,
but they can also be used in shortcuts, the Settings app, sharing dialogs, and
the overview screen. Adaptive icons are used across all Android form factors.

In contrast to [bitmap
images](https://developer.android.com/guide/topics/resources/drawable-resource#Bitmap), adaptive icons can
adapt to different use cases:

- **Different shapes:** an adaptive icon can display a variety of shapes
  across different device models. For example, it can display a circular shape
  on one OEM device, and display a squircle (a shape between a square and a
  circle) on another device. Each device OEM must provide a mask, which the
  system uses to render all adaptive icons with the same shape.

  ![A gif showing a repeating animation of the same sample Android icon,
  showing different shapes depending on the mask used—a circle and then
  two different kinds of squircles](https://developer.android.com/static/guide/practices/ui_guidelines/images/article_icon_adaptive.gif) **Figure 1.** Adaptive icons support a variety of masks, which vary from one device to another.
- **Visual effects:** an adaptive icon supports a variety of engaging visual
  effects, which display when users place or move the icon around the home
  screen.

  ![A gif showing examples of two circle-shaped Android sample icons,
  animated to show user response. The first icon shows the Android logo
  wobbling left then right, then up and down inside the circle. The second
  icon expands and then contracts again.](https://developer.android.com/static/guide/practices/ui_guidelines/images/article_icon_effect.gif) **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.
- **User theming:** starting with Android 13 (API level 33), users can theme
  their adaptive icons. If a user enables themed app icons in their system
  settings, and the launcher supports this feature, the system uses the
  coloring of the user's chosen wallpaper and theme to determine the tint
  color of the app icons for apps that have a `monochrome` layer in their
  adaptive icon. Starting with Android 16 QPR 2, Android automatically themes
  app icons for apps that don't provide their own.

  ![An image showing examples of three Android devices, each one showing a
  different user theme with different tints: the first shows a wallpaper with
  dark tinting; the second shows a golden-tinted wallpaper; the third shows a
  wallpaper with light grey with bluish tints wallpaper. In each example, the
  icons have inherited the tinting of the wallpaper and blend in perfectly.](https://developer.android.com/static/guide/practices/ui_guidelines/images/adaptive-icon-themed-icons.png) **Figure 3.** Adaptive icons inheriting from the user's wallpaper and themes.

  In the following scenarios, the home screen doesn't display the themed
  app icon, and instead displays the adaptive or standard app icon:
  - If the user doesn't enable themed app icons.
  - 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.
  - If the launcher doesn't support themed app icons.

## Design adaptive icons

To ensure that your adaptive icon supports different shapes, visual effects, and
user theming, the design must meet the following requirements:

- You must provide two layers for the color version of the icon: one for the
  foreground, and one for the background. The layers can be either vectors or
  bitmaps, though vectors are preferred.

  ![An image showing an example of a foreground layer (left image) and a
  background layer (right image). The foreground shows the 16-sided icon of a
  sample Android logo centered within a 66x66 safe zone. The safe zone is
  centered inside of a 108x108 container. The background shows the same
  measured dimensions for the safe zone and the container, but only a blue
  background and no logo.](https://developer.android.com/static/guide/practices/ui_guidelines/images/adaptive-icon-foreground-background.png) **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. ![An image showing the icon from the preceding image overlaid on a
  circular mask.](https://developer.android.com/static/guide/practices/ui_guidelines/images/adaptive-icon-mask-applied.png) **Figure 5.** An example of how foreground and background layers look together with a circular mask applied.
- If you want to support user theming of app icons, provide a single layer for
  the monochrome version of the icon.

  ![An image showing an example of a monochromatic icon layer (left image)
  and color previews (right image). The monochromatic layer shows the 16-sided
  icon of a sample Android logo centered within a 66x66 safe zone. The safe
  zone is centered inside of a 108x108 container. The color previews show
  this layer display when applied to differently colored user themes (orange,
  pink, yellow, and green).](https://developer.android.com/static/guide/practices/ui_guidelines/images/adaptive-icon-monochrome.png) **Figure 6.** A monochromatic icon layer (left) with examples of color previews (right).
- Size all layers to 108x108 dp.

- Use icons with clean edges. The layers must not have masks or background
  shadows around the outline of the icon.

- Use a logo that's at least 48x48 dp. It must not exceed 66x66 dp,
  because the inner 66x66 dp of the icon appears within the masked
  viewport.

The outer 18 dp on each of the four sides of the layers is reserved for
masking and to create visual effects such as parallax or pulsing.
| **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.

To learn how to create adaptive icons using Android Studio, see our [Android App
icon Figma
template](https://www.figma.com/community/file/1131374111452281708)
or [Android Studio documentation for creating launcher
icons](https://developer.android.com/studio/write/image-asset-studio#create-adaptive). Also,
check out the blog post [Designing Adaptive
Icons](https://medium.com/google-design/designing-adaptive-icons-515af294c783)
.

## Add your adaptive icon to your app

Adaptive icons, just like non-adaptive icons, are specified [using the
`android:icon` attribute in the app
manifest](https://developer.android.com/guide/topics/manifest/manifest-intro#iconlabel).

An optional attribute, `android:roundIcon`, is used by launchers that represent
apps with circular icons, and may be useful if your app's icon includes a
circular background as a core part of its design. Such launchers are required to
generate app icons by applying a circular mask to `android:roundIcon`, and this
guarantee may enable you to optimize the appearance of your app icon by, for
example, slightly enlarging the logo and ensuring that when cropped, the
circular background is full bleed.

The following code snippet illustrates both of these attributes, but most apps
only specify `android:icon`:  

```xml
<application
    ...
    android:icon="@mipmap/ic_launcher"
    android:roundIcon="@mipmap/ic_launcher_round"
    ...>
</application>
```

Next, save your adaptive icon to `res/mipmap-anydpi-v26/ic_launcher.xml`. Use
the `<adaptive-icon>` element to define the foreground, background, and
monochromatic layer resources for your icons. The `<foreground>`,
`<background>`, and `<monochrome>` inner elements support both
vector and bitmap images.

The following example shows how to define `<foreground>`, `<background>`, and
`<monochrome>` elements inside `<adaptive-icon>`:  

```xml
<?xml version="1.0" encoding="utf-8"?>
...
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@drawable/ic_launcher_background" />
    <foreground android:drawable="@drawable/ic_launcher_foreground" />
    <monochrome android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>
...
```

The foreground and monochrome layers are using the same
drawable. However, you can create separate drawables for each layer if needed.

You can also define drawables as elements by *inlining* them into the
`<foreground>`, `<background>`, and `<monochrome>` elements. The following
snippet shows an example of doing this with the foreground drawable.  

```xml
<?xml version="1.0" encoding="utf-8"?>
...
<foreground>
   <inset
       android:insetBottom="18dp"
       android:insetLeft="18dp"
       android:insetRight="18dp"
       android:insetTop="18dp">
       <shape android:shape="oval">
           <solid android:color="#0000FF" />
       </shape>
   </inset>
</foreground>
...
```

If you want to apply the same mask and visual effect to your shortcuts as
regular adaptive icons, use one of the following techniques:

- For static shortcuts, use the `<adaptive-icon>` element.
- For dynamic shortcuts, call the [`createWithAdaptiveBitmap()`](https://developer.android.com/reference/android/graphics/drawable/Icon#createWithAdaptiveBitmap(android.graphics.Bitmap)) method when you create them.

For more information about implementing adaptive icons, see [Implementing
Adaptive
Icons](https://medium.com/google-developers/implementing-adaptive-icons-1e4d1795470e).
For more information about shortcuts, see [App shortcuts
overview](https://developer.android.com/guide/topics/ui/shortcuts).

## Additional resources

See the following resources for additional information about designing and
implementing adaptive icons.

- [Figma community page template](https://www.figma.com/community/file/1131374111452281708)
- [Understanding Android Adaptive Icons](https://medium.com/google-design/understanding-android-adaptive-icons-cee8a9de93e2)
- [Designing Adaptive Icons](https://medium.com/google-design/designing-adaptive-icons-515af294c783)
- [Implementing Adaptive Icons](https://medium.com/google-developers/implementing-adaptive-icons-1e4d1795470e)
- [Create app icons in Android Studio](https://developer.android.com/studio/write/create-app-icons#create-adaptive)
- [Google Play icon design specifications](https://developer.android.com/google-play/resources/icon-design-specifications)