← All

Android app icon sizes and exporting

Android app icon sizes and exporting

Android app icons can look blurry, clipped, or oddly tinted when a launcher changes shape or a user turns on themed icons. A bad icon is the first thing people see, and it can signal "amateur" before anyone opens the app.

Android uses a 48×48 dp launcher baseline, adaptive icons use a 108×108 dp canvas, and Google Play requires a separate 512×512 px store icon. The export workflow also needs the right app folders and a monochrome layer for themed icons.

If you build the icon from the right specs, it will look sharp across launchers and avoid rejection or poor rendering.

The launcher icon sizes Android actually requires

Start with the launcher baseline before you export anything. Android uses a 48×48 dp baseline, then maps that baseline across the density buckets so each device can pull a sharp bitmap for its density:

  • mdpimipmap-mdpi48×48 px (1×)
  • hdpimipmap-hdpi → 72×72 px (1.5×)
  • xhdpimipmap-xhdpi → 96×96 px (2×)
  • xxhdpimipmap-xxhdpi → 144×144 px (3×)
  • xxxhdpimipmap-xxxhdpi → 192×192 px (4×)

Upload the Google Play Store icon to the Play Console as a separate 512×512 px asset and keep it out of your app folders. It has its own format rules, so handle it separately from the launcher bitmaps.

What Google Play requires before you can publish

Prepare the store-listing assets as a separate release task. They come from the same clean source, but you export them separately from your in-app launcher folders.

The 512×512 px high-resolution app icon must be a 32-bit PNG with alpha and under 1024 KB. Submit it as a full square and let Google apply rounded corners automatically.

You also need these store-listing assets before publication:

  • Feature graphic: 1024×500 px, as a JPEG or 24-bit PNG with no alpha.
  • Screenshots: at least 2 and up to 8 per device type, between 320px and 3840px, as JPEG or 24-bit PNG with no alpha.

Keep visual effects out of the Play Store icon. Google applies its own mask, so adding your own rounded corners or drop shadows creates double-rounding and visual artifacts. Keep the source clean and let the system do the finishing.

Adaptive icons and the safe zone that prevents clipping

Launchers show different final shapes, and the device decides whether your icon appears as a circle, squircle, or other mask. Your job is to keep the brand-critical artwork inside the safe area.

The device maker provides the mask, and you control the artwork inside the layers. Android has supported adaptive icons since Android 8.0, also known as API level 26.

Design adaptive icons at a 108×108 dp canvas, and keep key artwork inside the 66×66 dp safe zone. The system reserves the outside area for effects like parallax and pulsing when users drag icons around the home screen.

The key dimensions to design against:

  • Total layer canvas: 108×108 dp — design your foreground and background at this size.
  • Masked viewport: 72×72 dp — the reference viewport used by the adaptive icon mask.
  • Safe zone: 66×66 dp — keep key artwork inside this.
  • Outer reserved margin: 18 dp per side — the system uses this for animation, so keep it clear.
  • Logo size range: 48×48 to 66×66 dp — keep the logo within this range.

There is a documented discrepancy worth knowing. The AdaptiveIconDrawable reference defines the masked viewport as 72×72 dp, while the Compose guide uses 66×66 dp as the safe zone for the monochrome layer. Keep brand-critical elements inside the tighter center.

You declare adaptive icons in XML with a required background layer and a required foreground layer. You can also include an optional monochrome layer. Vectors are a practical default for these layers because they scale cleanly. Keep masks and drop shadows out of the layers themselves.

Why launcher icons should go in mipmap

Android Studio creates launcher icons in mipmap/ directories. Reserve drawable/ for ordinary graphics, and put app launcher icons in mipmap/.

The density list above only helps if Android can find the right exported asset. Keeping launcher assets in mipmap-<density> folders follows the structure Android Studio generates for launcher icons.

Android picks the right resource by comparing the device configuration to your folder qualifiers. When there is no exact match, it can scale a resource from another density bucket. Your manifest then points to the mipmap location:

<application android:icon="@mipmap/ic_launcher">

The fastest way to export every size correctly

Use tooling for the full launcher set. Manual resizing creates room for folder mistakes, naming mistakes, and blurred assets.

Android Studio includes Image Asset Studio, which generates the launcher set from a single source. Use it whether you write code directly or prepare assets alongside an AI app builder project.

To open it, right-click the res folder, then select New > Image Asset. Choose adaptive and legacy launcher icons so it produces adaptive icons for newer systems and legacy bitmaps for older devices in the same flow.

From the source asset, Image Asset Studio produces:

  • Icons in the correct res/mipmap-<density>/ folders for every bucket.
  • A Play Store image from the same source asset.
  • The adaptive icon XML at res/mipmap-anydpi-v26/ic_launcher.xml.
  • The AndroidManifest.xml reference to @mipmap/ic_launcher.

Set your project's compileSdkVersion 26 or higher before you generate adaptive icons. If you prefer to design first, a documented Figma adaptive icons template shows locked layers with safe-zone guides and an export flow for the asset set.

Newer Android Studio releases also add a dedicated Monochrome tab in Image Asset Studio. Use it to supply a separate monochrome icon or reuse the foreground layer.

The monochrome layer is now effectively mandatory

When a user turns on themed app icons on a launcher that supports them, the system tints a single-layer version of your icon to match their wallpaper. That single-layer version is your monochrome layer.

Here's how the feature evolved across recent Android versions:

  • Android 8.0: Adaptive icons with foreground and background layers.
  • Android 12: Material You colors from the user's wallpaper.
  • Android 13: Themed app icons via the monochrome layer.
  • Android 16 QPR 2: Auto-theming for apps with no monochrome layer.

Starting with Android 16 QPR 2, Android automatically themes icons for apps that do not provide their own monochrome layer. The auto-generated result can look different from your intended design, so supplying your own monochrome layer keeps you in control of the themed appearance.

A monochrome layer can reuse the foreground drawable or point to a simplified asset. The full adaptive icon XML looks like this:

<adaptive-icon xmlns:android="">
  <background android:drawable="@drawable/ic_launcher_background"/>
  <foreground android:drawable="@drawable/ic_launcher_foreground"/>
  <monochrome android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

To check your work, open your launcher.xml file in Android Studio. Use the System UI Mode selector to switch wallpapers and preview how the icon reacts to theming.

Design choices that keep your icon sharp at small sizes

Specs get you a technically valid icon. Design discipline gets you one that still works when it shrinks. Start with less detail than you think you need, then test the result on a real device.

Avoid too much detail, because complex illustrations turn into mush when shrunk. These habits keep your icon clean across devices and modes:

  • The guidance is direct: "Keep artwork simple. Avoid multiple layers, many effects, and text. These details will be lost or difficult to see at small sizes."
  • Use bold, geometric shapes and face the icon forward. Keep it upright and flat.
  • Position elements on whole-pixel coordinates. Decimal positions cause subpixel rendering blur.
  • For UI and system icons, keep a consistent stroke weight, with 2dp recommended in Material Design.

Preview the icon at actual size on a device; a large design canvas hides fine details that vanish quickly. Then test varied wallpapers in light and dark modes so themed rendering works after launch.

If you're preparing Android assets while building with an AI app builder, separate icon prep from current platform support. We currently support iOS deployment through Expo, while native Android support is still in development. For current mobile workflow details, check the mobile app docs and treat the Android sizes above as prep work for Android-specific release requirements.

Start with a simple, bold mark, run it through Image Asset Studio or the Figma template, and confirm it on a real device before you publish. If you want to build the working version first, try Anything free and build your app through an iterative workflow.