Free tool

APK Icon Generator

Drop in one square image and get every Android launcher icon size back in a ZIP that matches the res/ folder structure — plus the 512×512 icon Google Play asks for at upload.

Generate your icon set

Everything runs in your browser — your image is never uploaded to a server.

Choose an image or drop it here PNG, JPG, WebP or SVG — 1024×1024 works best
Used behind images that aren't square.
Breathing room inside the icon.
Android masks icons itself — leave at 0 unless you want it baked in.

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.

FolderSizeTypical device
mipmap-mdpi48 × 48Baseline density (1×)
mipmap-hdpi72 × 721.5× — older budget phones
mipmap-xhdpi96 × 962× — most mid-range phones
mipmap-xxhdpi144 × 1443× — the bulk of phones in use
mipmap-xxxhdpi192 × 1924× — flagship displays
drawable432 × 432Adaptive icon foreground layer
Play Console upload512 × 512Store 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

  1. Export your logo as a square PNG at 1024×1024. Bigger is fine; smaller means upscaling.
  2. Drop it above. If your artwork has its own background, untick Transparent and pick the colour so the padding matches.
  3. Add padding if the logo touches the edges — 10–15% is a common choice for wordless marks.
  4. Leave corner radius at 0 unless you specifically want rounded corners baked into the file. Android already masks icons.
  5. 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:

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.

Frequently asked questions

What size should an Android app icon be?

Android needs five launcher sizes — 48, 72, 96, 144 and 192 pixels square — one per density bucket, plus a 512×512 PNG for the Google Play listing. If you use adaptive icons you also supply a 432×432 foreground layer whose artwork stays inside the central 66% safe zone. This tool exports all of them from one source image.

Do I need to upload my image anywhere?

No. The resizing happens in your browser with the Canvas API, and the ZIP is assembled locally too. Nothing is sent to our servers, which also means the tool works offline once the page has loaded.

What is the difference between mipmap and drawable folders?

Launcher icons belong in mipmap-* folders. Android keeps mipmap resources for all densities even when it strips unused densities from a split APK, because a launcher may request an icon at a density the device itself does not use. Everything else — including the adaptive icon's foreground layer — lives in drawable.

Why does my icon look cropped on some phones?

Adaptive icons are masked to whatever shape the launcher uses, so the corners of a full-bleed design get cut on circular masks. Keep the important artwork inside the middle two-thirds of the canvas. The adaptive foreground this tool generates is padded to respect that safe zone.

Can I use a JPG or an SVG?

Yes. Both are read by the browser and re-encoded as PNG, which is what Android expects. An SVG is the best possible source because it scales to 512px with no quality loss; a JPG works but any compression artifacts in the original will still be there afterwards.

Does Google Play accept a transparent app icon?

Not for the 512×512 store listing icon — it must be a 32-bit PNG with no alpha channel, or the upload is rejected. Launcher icons inside the APK can be transparent. This tool handles the difference for you by compositing the Play icon onto a solid background.

Read next

Related tools

Ready to turn your site into an app?

Upload an HTML file or a ZIP, set your icon and name, and download a signed Android app. No Android Studio, no command line.

Open the builder