If you're publishing an Android app, you need launcher icons in five different densities, plus a 512×512px icon for the Play Store listing. Get any of these wrong and your app either looks blurry on high-density screens or gets rejected during Play Console upload.
Here's the complete, current reference — and a free generator that creates all of them from one image.
---
The Five Launcher Densities
Android groups screen densities into "buckets." Your launcher icon (ic_launcher.png) needs a version for each:
| Density Bucket | Folder | Icon Size (px) | Typical Devices |
|---|---|---|---|
| MDPI | `mipmap-mdpi/` | 48×48 | Baseline (rarely used now, but still required) |
| HDPI | `mipmap-hdpi/` | 72×72 | Older mid-range phones |
| XHDPI | `mipmap-xhdpi/` | 96×96 | Common mid-range phones |
| XXHDPI | `mipmap-xxhdpi/` | 144×144 | Most modern phones |
| XXXHDPI | `mipmap-xxxhdpi/` | 192×192 | High-end phones, tablets |
Android automatically picks the right file for each device — you don't write any code for this, you just need the files in the right folders with the right names.
---
The Play Store Icon
Separately from the launcher icons bundled in your APK/AAB, the Play Console requires a standalone 512×512px PNG for your store listing. This is what users see in search results and on your app's page — it's not pulled from your launcher icons automatically.
---
Adaptive Icons (Android 8.0+)
Since Android 8.0 (Oreo), launchers can mask your icon into different shapes — circle, squircle, rounded square — depending on the device manufacturer's launcher. This is why the GMC Tools generator includes a shape preview (square, rounded, circle) — so you can see how your icon will look once a launcher applies its mask, and add enough padding that important details (like text or logos) don't get clipped.
A safe rule: keep your most important visual content within the center 66% of the canvas, which is roughly what GMC Tools' 15-20% padding setting achieves.
---
Generating All Sizes in One Step
Manually exporting six PNG files at six exact pixel sizes is tedious and error-prone — a single mis-sized file can cause Android Studio build warnings or a rejected Play Console upload.
mipmap-mdpi/ through mipmap-xxxhdpi/ plus play-store-icon-512.png, all correctly namedDrop the mipmap-* folders directly into app/src/main/res/ in Android Studio, replacing the existing placeholder icons.
---
Frequently Asked Questions
Do I need all five densities, or just XXXHDPI?
Technically Android can scale down a single high-resolution icon, but providing each density avoids runtime scaling artifacts and is still the recommended practice for launcher icons.
What format should Android icons be?
PNG with transparency is standard for launcher icons (the OS or launcher applies the background/shape mask).
Is 512×512 the only size the Play Store needs?
For the app icon specifically, yes — 512×512px PNG, 32-bit with alpha. (Feature graphics and screenshots have separate size requirements.)
Can I use this for Flutter or React Native apps?
Yes — both frameworks use the same Android mipmap folder structure under the hood, so the generated files drop in directly.