Iconello
Adaptive Icons

Generate Android Adaptive Icons with AI

Foreground and background layers at every density. mipmap folders, round variants, and Play Store icon — ready to drop into Android Studio.

What Are Adaptive Icons?

Before Android 8.0 (API 26), every app shipped a single PNG launcher icon. Different manufacturers applied different masks, and the results were messy — circular icons on Samsung, rounded squares on Pixel, plain squares on LG. Some icons had visible white corners where the transparency was supposed to be.

Adaptive icons fix this by separating the icon into two layers: a foreground containing your logo or symbol, and a background that fills the entire canvas. The OS decides the shape by applying a mask over both layers. The result looks native on every device, regardless of what mask shape the manufacturer chose.

Both layers are 108x108dp, but only the inner 72x72dp (the "visible area") is guaranteed to be shown. The outer 18dp on each side exists for motion effects — when you long-press an icon, Android can shift the foreground layer relative to the background to create a parallax effect.

The safe zone is 66.67% of the canvas

Your logo must fit within the inner 72dp of the 108dp canvas. That is 66.67% of the total area. Content outside this zone will be clipped by most mask shapes. This is more aggressive than PWA maskable icons (80%), so icons designed for PWA safe zones may still get clipped on Android if they are tight.

Foreground and Background Layers

Foreground Layer

Contains your app's symbol, logo, or icon art. Transparent background is fine — only the opaque content matters. Keep all meaningful content within the inner 72dp safe zone (that is 66.67% of the 108dp canvas). The foreground is rendered on top of the background.

Background Layer

A flat color, gradient, or pattern that fills the entire 108dp canvas. This layer is always fully opaque. The OS clips it to whatever mask shape the device uses. Many apps use a single solid brand color here.

Density Bucket Reference

Android renders icons at the device's screen density. A 48dp icon becomes 48px on an mdpi screen, 72px on hdpi, and 192px on xxxhdpi. Here is the full scale for launcher icons:

DensityMultiplierLegacy IconAdaptive LayerFolder
mdpi1x48x48 px108x108 pxmipmap-mdpi
hdpi1.5x72x72 px162x162 pxmipmap-hdpi
xhdpi2x96x96 px216x216 pxmipmap-xhdpi
xxhdpi3x144x144 px324x324 pxmipmap-xxhdpi
xxxhdpi4x192x192 px432x432 pxmipmap-xxxhdpi
48x48

mdpi

Baseline density — 160 dpi devices

72x72

hdpi

High density — 240 dpi devices

96x96

xhdpi

Extra high density — 320 dpi devices

144x144

xxhdpi

Extra-extra high — 480 dpi devices

192x192

xxxhdpi

Highest density — 640 dpi devices

512x512

Play Store

Required for Google Play listing

Installing in Android Studio

The Iconello download organizes everything into the standard Android resource structure. Here is how to add it to your project:

  1. Open your project in Android Studio and navigate to app/src/main/res/.
  2. Delete or rename the existing mipmap-* folders containing ic_launcher files.
  3. Copy the generated mipmap-mdpi through mipmap-xxxhdpi folders into res/.
  4. If using adaptive icons, copy ic_launcher.xml and ic_launcher_round.xml into mipmap-anydpi-v26/.
  5. Sync the project (File > Sync Project with Gradle Files).
  6. Run the app — the icon updates immediately on the launcher.
res/mipmap-anydpi-v26/ic_launcher.xml
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@mipmap/ic_launcher_background" />
    <foreground android:drawable="@mipmap/ic_launcher_foreground" />
</adaptive-icon>

This XML tells Android to compose the icon from separate foreground and background layers at runtime. Devices running Android 7.1 or earlier ignore this file and fall back to the legacy ic_launcher.png in the density-specific mipmap folder.

Google Play Store Requirements

Google Play has its own icon requirements separate from the launcher icon:

Play Console rounds your icon

Since 2019, Google Play applies a circular mask to your 512x512 icon in search results and the store listing. Keep your logo within the center ~75% of the image to avoid clipping. The Iconello Play Store icon is already designed with this in mind.

Android 13+ Themed Icons

Android 13 introduced themed icons that tint app icons to match the user's wallpaper palette. To support this, you provide a monochrome version of your icon — a single-channel image where the shape is white and the background is transparent. The OS extracts the alpha channel and applies the wallpaper-derived color.

res/mipmap-anydpi-v26/ic_launcher.xml (with monochrome)
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@mipmap/ic_launcher_background" />
    <foreground android:drawable="@mipmap/ic_launcher_foreground" />
    <monochrome android:drawable="@mipmap/ic_launcher_monochrome" />
</adaptive-icon>

Apps without a monochrome layer get a generic circular fallback on themed home screens. It works, but it looks out of place next to apps that implemented the feature properly.

Frequently Asked Questions

What is the difference between ic_launcher and ic_launcher_round?

Some launchers (notably Pixel Launcher on older Android versions) request a round icon variant specifically. ic_launcher_round is that variant — pre-clipped to a circle. If you provide it, those launchers use it. If you do not, they fall back to clipping ic_launcher into a circle themselves, which sometimes looks worse because the clipping does not account for your icon's specific layout.

Do I still need legacy icons if I use adaptive?

Yes. Devices running Android 7.1 (API 25) and earlier do not understand adaptive icons. They need a traditional ic_launcher.png in each density folder. The adaptive XML in mipmap-anydpi-v26/ only kicks in on API 26 and above.

Why is the adaptive layer 108dp instead of 48dp?

The extra space (18dp on each side beyond the 72dp visible area) gives the OS room for motion effects. When you long-press or drag an adaptive icon, Android shifts the foreground relative to the background, creating a depth effect. Without that padding, the edge of the layer would become visible during the animation.

Can I use a vector drawable instead of PNG layers?

Yes. Android supports vector drawables for adaptive icon layers. Replace the mipmap references in ic_launcher.xml with drawable references pointing to your VectorDrawable XML files. This reduces APK size since you only ship one scalable file per layer instead of five PNGs.

Generate your Android icons in seconds

Describe your app, pick a style, and get adaptive icon layers at every density — plus the Play Store icon.