How Android launcher icons work
Since Android 8 (API 26) launchers use adaptive icons: a foreground and a background layer, each 108×108dp. The launcher cuts them with its own mask (circle, squircle, rounded square…) and shows only the inner 72dp. Content outside the central 66dp may be cut off or move during animations.
Android 13 added themed icons. If the adaptive icon has a <monochrome> layer, users who turn on themed icons see it colored to match their wallpaper. Without it, your app keeps its colorful icon among themed ones.
Android icon sizes
| Density | Legacy 48dp | Adaptive layer 108dp |
|---|---|---|
| mdpi | 48 px | 108 px |
| hdpi | 72 px | 162 px |
| xhdpi | 96 px | 216 px |
| xxhdpi | 144 px | 324 px |
| xxxhdpi | 192 px | 432 px |
| Google Play | 512 × 512 px | |
Add the icons to your app
- Delete the existing
ic_launcher*files inapp/src/main/res/mipmap-*(especially.webpones). - Copy the
resfolder from the ZIP intoapp/src/main/res. - Check that the manifest points to the icons:
<application
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
...>The adaptive icon XML with the themed layer:
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
<monochrome android:drawable="@mipmap/ic_launcher_monochrome"/>
</adaptive-icon>Upload play-store-512.png in Google Play Console under Main store listing. All sizes: app icon size cheat sheet.