Android app icons are more complex than iOS — not because there are more sizes, but because Android introduced adaptive icons in Android 8.0 that require separate foreground and background layers. This guide covers legacy sizes, adaptive icon specs, Google Play requirements, and the fastest way to generate every variant from a single source image.
Legacy Icons vs Adaptive Icons — What's the Difference?
Before Android 8.0 (Oreo), app icons were simple: a square PNG at a fixed pixel size per screen density. Every launcher displayed it the same way.
Starting with Android 8.0, Google introduced adaptive icons — a system where your icon is split into two separate 108×108dp layers: a foreground (your logo or artwork) and a background (a solid color, gradient, or pattern). The Android system then applies its own mask shape — circle, squircle, rounded square, teardrop — depending on the device manufacturer and launcher.
The practical result is that your icon automatically adapts to look native on every Android device, without you needing to export a different shape for each one.
How Adaptive Icons Work
Layer
Layer
Masked
Legacy Icon Sizes (All Screen Densities)
Android uses density qualifiers — mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi — to determine which asset to load on a given device. Each density is a multiplier of the baseline 48×48dp size:
| Density | Size (px) | Scale | Typical Device | Status |
|---|---|---|---|---|
| mdpi | 48 × 48 | 1× | Low-density phones | Required |
| hdpi | 72 × 72 | 1.5× | Mid-range phones | Required |
| xhdpi | 96 × 96 | 2× | Standard phones | Required |
| xxhdpi | 144 × 144 | 3× | High-end phones | Required |
| xxxhdpi | 192 × 192 | 4× | Flagship phones | Required |
| Google Play Store | 512 × 512 | — | Play Store listing | Required |
Adaptive Icon Sizes
For adaptive icons, both the foreground and background layers must be 108×108dp at each density. The outer 18dp on each side is the "safe zone" bleed area — content inside this margin may be cropped depending on the device mask shape.
| Density | Full Size (px) | Safe Zone (px) | Layer | Status |
|---|---|---|---|---|
| mdpi | 108 × 108 | 72 × 72 | fg + bg | Adaptive |
| hdpi | 162 × 162 | 108 × 108 | fg + bg | Adaptive |
| xhdpi | 216 × 216 | 144 × 144 | fg + bg | Adaptive |
| xxhdpi | 324 × 324 | 216 × 216 | fg + bg | Adaptive |
| xxxhdpi | 432 × 432 | 288 × 288 | fg + bg | Adaptive |
Google Play Store Requirements
The Google Play listing icon is separate from the in-app icons and has its own strict requirements:
- Size: exactly 512×512px
- Format: PNG with no transparency — the background must be fully opaque
- File size: must be under 1MB
- Shape: square with no pre-applied corner rounding — Google applies rounding in the Store UI
- Color space: sRGB (not P3 or CMYK)
Google Play also uses this 512×512 image as the source for feature graphics and promotional banners in some contexts, so it's worth investing extra care into this size specifically.
Common Mistakes That Cause Problems
These are the most frequent Android icon issues reported by developers submitting to Google Play:
- Artwork too close to the edge on adaptive icons. Many developers put their logo flush against the edge of the 108dp canvas, then discover it gets clipped on circular launchers. Keep everything inside the 72dp safe zone.
- Forgetting the 512×512 Play Store icon. This is a separate asset — you cannot use your xxhdpi or xxxhdpi launcher icon for the Play listing.
- Using JPEG format. All Android icon assets must be PNG. JPEG files are not accepted by Android Studio or Google Play.
- Inconsistent visual weight across densities. If you're generating icons manually, subtle rounding differences between scales can make your icon look sharp on some devices and blurry on others. Always generate from the same high-resolution source.
- Ignoring dark mode. Android 13+ supports monochrome adaptive icons for themed icon packs. While not required, providing a monochrome version improves the user experience on Material You launchers.
Android vs iOS Icon Requirements: Key Differences
🍎 iOS Icons
- Single flat PNG per size
- Apple applies corner rounding
- No transparency allowed
- 13 required sizes
- No layered format
- Single source file approach (Xcode 15+)
🤖 Android Icons
- Legacy PNGs per density + adaptive layers
- System applies shape mask at runtime
- No transparency on Play Store icon
- 6 legacy sizes + 5 adaptive sizes
- Foreground + background layers for adaptive
- VectorDrawable support for foreground
Step-by-Step: Generate All Android Icons with DenaliKit
DenaliKit's Android Icons preset handles both legacy and adaptive sizes in one pass. Here's the full workflow:
Prepare your source image
Start with a square PNG at 1024×1024px or larger. For adaptive icons, design your foreground artwork with the safe zone in mind — keep important content within the central 66% of the canvas.
Open DenaliKit Image Resizer
Go to denalikit.com/app/image-resizer.html. The Android Icons preset requires a small one-time Premium upgrade — no subscription, no recurring charges.
Drop your source image
Drag your PNG into the upload area. For adaptive icons, upload your foreground layer first, then your background layer in a second pass.
Select the Android Icons preset
Choose the Android App Icons preset. This generates all 5 legacy density sizes (mdpi through xxxhdpi) plus the 512×512 Google Play icon, correctly named for Android Studio.
Download and import into Android Studio
Download the ZIP. Each file is named with the correct density suffix (e.g. ic_launcher_mdpi.png). Drag them into your res/mipmap-*/ directories in Android Studio.
Importing Icons into Android Studio
Android Studio has two ways to manage launcher icons — manual file placement and the built-in Image Asset Studio.
Manual file placement
If you've exported the full icon set from DenaliKit, place each file in the corresponding res/mipmap-* directory:
res/mipmap-mdpi/ic_launcher.png— 48×48res/mipmap-hdpi/ic_launcher.png— 72×72res/mipmap-xhdpi/ic_launcher.png— 96×96res/mipmap-xxhdpi/ic_launcher.png— 144×144res/mipmap-xxxhdpi/ic_launcher.png— 192×192
Using Image Asset Studio
For adaptive icons, Android Studio's built-in Image Asset Studio is the recommended approach. Right-click on res → New → Image Asset. Select Launcher Icons (Adaptive and Legacy), then provide your foreground and background layers separately. Studio generates all density variants and the ic_launcher.xml adaptive icon descriptor automatically.
ic_launcher.xml vector descriptor and ensuring correct layer alignment across densities is error-prone. Image Asset Studio handles all of it automatically when you provide the two source layers.Design Tips for Android Icons That Stand Out
The Google Play Store is crowded. These principles separate high-performing app icons from forgettable ones:
- Design for the circle first. Since many popular launchers (Pixel, Samsung) use circular masks, test your icon at circle crop before finalising. If it breaks at circle, it'll look bad on the majority of devices.
- Use the parallax effect deliberately. Android animates adaptive icon layers independently in response to device motion. Subtle depth — a background that shifts slightly behind the foreground — creates a premium feel. Don't make the effect too extreme or it becomes dizzying.
- Avoid thin strokes. At 48×48px (mdpi), a 2px stroke becomes 1px — often invisible or jagged. Design with bold, chunky shapes that hold at small sizes.
- Test on a real device. The Android Emulator applies a different icon mask than physical devices. Always test your final icon on at least one physical phone before shipping.
- Consider a monochrome variant. Android 13's themed icons feature tints all app icons to match the system wallpaper colour. Providing a clean monochrome version of your icon ensures it looks intentional rather than accidentally tinted.
Frequently Asked Questions
Do I need both legacy and adaptive icons?
If your minSdkVersion is 26 or higher, adaptive icons alone are sufficient. For most apps targeting Android 5.0+ (minSdk 21), you need both — adaptive icons for Android 8.0+ devices and legacy PNGs for older devices. Android Studio's Image Asset Studio handles this automatically.
Can I use the same artwork for Android and iOS?
You can use the same source image, but the icon shapes differ. iOS uses a fixed rounded rectangle; Android applies various shapes at runtime. Design your artwork to work at both a circle (Android) and a rounded square (iOS) before exporting. DenaliKit has separate presets for iOS and Android.
What's the difference between ic_launcher and ic_launcher_round?
ic_launcher is the standard launcher icon. ic_launcher_round is an optional round variant for devices that request a circular icon rather than applying a system mask. If you don't provide ic_launcher_round, Android falls back to ic_launcher. It's good practice to provide both.
Does the Play Store icon need to match the app icon exactly?
Not exactly, but it should be recognisably the same. Some developers use a slightly simplified or higher-contrast version of the icon for the Play Store listing, since it's viewed at a larger size with more visual context. Keep the overall color scheme and key visual element consistent.
What is the DenaliKit one-time fee for Android icons?
The Android Icons preset is part of DenaliKit Premium — a single one-time payment, not a subscription. Premium also includes iOS icons, favicon sets, email header presets, and all other premium image presets. See full pricing →