Why an Android app needs six copies of the same icon
Android phones ship with wildly different screen densities, and the launcher picks the icon that matches the device rather than scaling one image up. Ship a single 48×48 icon and it will look soft and blocky on almost every modern phone; ship only a 512×512 and older devices waste memory downscaling it on every draw. The platform expects one file per density bucket, sitting in a folder whose name tells Android which device it belongs to.
| Folder | Size | Typical device |
|---|---|---|
mipmap-mdpi | 48 × 48 | Baseline density (1×) |
mipmap-hdpi | 72 × 72 | 1.5× — older budget phones |
mipmap-xhdpi | 96 × 96 | 2× — most mid-range phones |
mipmap-xxhdpi | 144 × 144 | 3× — the bulk of phones in use |
mipmap-xxxhdpi | 192 × 192 | 4× — flagship displays |
drawable | 432 × 432 | Adaptive icon foreground layer |
| Play Console upload | 512 × 512 | Store listing, 32-bit PNG, no transparency |
The ZIP this tool produces already uses those folder names, so you can copy res/ straight into app/src/main/ and build. If you are using our online builder instead, you only need the single square image — the build service generates the same set for you.
Adaptive icons and the safe zone
Since Android 8.0 the launcher, not your PNG, decides the icon's shape: a circle on one phone, a squircle on another, a rounded square on a third. Your foreground artwork sits on a 108dp canvas but only the middle 72dp — about 66% — is guaranteed to be visible. Anything outside that ring can be cropped by the mask, and on launchers that animate icons it moves during the parallax effect.
That is why the adaptive foreground this tool exports is padded automatically. If your logo already fills the frame edge to edge, expect the corners to disappear under a circular mask. Design for the safe zone rather than fighting it.
How to use this tool
- Export your logo as a square PNG at 1024×1024. Bigger is fine; smaller means upscaling.
- Drop it above. If your artwork has its own background, untick Transparent and pick the colour so the padding matches.
- Add padding if the logo touches the edges — 10–15% is a common choice for wordless marks.
- Leave corner radius at 0 unless you specifically want rounded corners baked into the file. Android already masks icons.
- Download the ZIP for a native project, or just the 512×512 if you only need the Play Store asset.
What makes a launcher icon work
The icon is rendered at roughly 4mm across on a real phone, next to thirty others. That constraint drives every good decision about it:
- One subject. A single mark, glyph or letterform. Scenes and detailed illustrations turn to mud.
- No text. Your app name already appears underneath the icon. Words inside it are unreadable at 48px and read as clutter at any size.
- No screenshots. A shrunk-down screen of your website is the single most common mistake in web-to-app conversions.
- Contrast against both light and dark wallpapers. Test on a white background and a black one — a dark logo on a transparent background vanishes on a dark wallpaper.
- Flat over skeuomorphic. Drop shadows and bevels baked into the PNG fight the launcher's own elevation effects.
Common mistakes this tool will not fix
Upscaling is the big one. If you feed in a 128×128 image, every larger size is interpolated and the result is visibly soft — the tool warns you when your source is under 512px, but it cannot invent detail that was never there. Start from vector art or the largest raster you have.
The second is transparency on the Play Store icon. Google Play rejects a 512×512 with an alpha channel, which is why this tool always composites that one onto a solid background even when the launcher icons stay transparent.
The third is a non-square source. A wide logo gets letterboxed into the square with your chosen background colour showing at the top and bottom. That is usually not what you want — crop or redraw it square first, or accept a lot of empty space.