Splash screen sizes for iOS and Android
The splash screen dimensions each platform and toolchain asks for. Author one source artwork and every variant below is generated from it — including the Android 12+ version the system clips into a circle.
Last reviewed September 2026
How each platform builds a splash screen
iOS launches through a Launch Screen storyboard, so the splash is a layout, not a fixed bitmap — you supply artwork and the system composes it. Android before 12 used a windowBackground drawable the same way. Android 12 replaced all of that with a system-generated splash: your launcher icon on a colored background, clipped to a circle, with an optional branding slot. That is why a modern splash is one source image plus a separate Android 12+ variant.
Source artwork sizes
These are the files splash generators actually produce — the same set the icon & splashscreen studio here exports per package, light and dark.
| Asset | Size (px) | Notes |
|---|---|---|
| Expo splash icon | 1024 × 1024 | Transparent PNG. expo-splash-screen scales it on device via imageWidth |
| Flutter splash image | 1024 × 1024 | flutter_native_splash scales it to each device; keep the background transparent |
| Flutter Android 12+ image | 960 × 960 | Must fit inside a 640 px circle — exported separately as splash12.png |
| Branding image | 800 × 320 | 200x80dp at xxxhdpi; flutter_native_splash renders it bottom-center |
Android 12+ system splash (dp)
The Android 12 splash is specified in density-independent pixels because the system composes it on the device. The icon follows the adaptive icon rules, which is where the circle mask comes from.
| Element | Size (dp) | Notes |
|---|---|---|
| App icon without background | 288 × 288 | Mark must fit inside a 192 dp circle |
| App icon with background | 240 × 240 | Mark must fit inside a 160 dp circle |
| Branded image | 200 × 80 | Optional — bottom slot below the icon |
The circle mask
Android 12 and later clip the splash icon to a circle with a diameter of two thirds of the icon canvas — 192dp inside a 288dp icon, 160dp inside a 240dp one. A mark that fills the canvas will be cropped on every modern Android device, so keep it centred and inside that circle. The same rule as the adaptive icon safe zone, applied at launch.
Dark mode
Both platforms resolve a dark appearance before your first frame draws. Ship a dark-background variant from the same artwork — expo-splash-screen and flutter_native_splash both take an image and color per appearance, which is why every splash file BowlerLaunch exports comes as a light/dark pair.
How to get every variant from one artwork
- Author the splash artwork once on a square canvas, transparent where the background shows through.
- Keep the mark inside the circle that Android 12+ will clip to.
- Export the source images, the Android 12+ safe-zone variant, and branding separately.
- Add the dark variants by swapping only the background, not the layout.
That is exactly what the splash studio automates — next to the app icon and the screenshot deck that ship in the same bundle.
Frequently asked questions
- What size should an Expo splash screen image be?
- Expo asks for a single 1024x1024 PNG with a transparent background. The expo-splash-screen plugin scales it to the device at build time — the imageWidth setting controls how large it renders, not the source resolution.
- Why does Android 12 and later ignore my custom splash image?
- Since Android 12, the system builds the cold-start splash itself from your launcher icon and window background, and it clips the icon to a circle. Custom artwork moves to the android_12 slot (splash12.png in a flutter_native_splash project), which is why it is exported as a separate, safe-zone-sized file.
- What is the Android 12 splash icon size?
- The icon canvas is 288x288dp without an icon background, or 240x240dp with one, and your mark has to survive a circular clip of 192dp or 160dp respectively — two thirds of the canvas, matching the adaptive icon rules. The optional branded image is 200x80dp.
- Do I still need the 2732x2732 universal launch image?
- Only if you build an image-based Launch Screen storyboard by hand — one 2732x2732 canvas centered on a background color covers every iOS device because it is the largest iPad Pro screen. Tools that generate from a single source artwork, like the splash studio here, replace that workflow entirely.
- Do I need separate light and dark splash screens?
- The stores do not require them, but both platforms support dark appearance, and a white flash at startup is the most common splash screen mistake. Ship a dark variant with an inverted background from the same artwork — every splash file BowlerLaunch exports comes as a light/dark pair.
- Can I put text or a tagline on the splash screen?
- On iOS and pre-Android-12 splash screens, yes — artwork, copy, and branding are all yours to compose. On Android 12+ the centre of the screen is reserved for the circular icon clip, so any tagline belongs in the small 200x80dp branding slot at the bottom.
Platform launch behavior changes between OS releases — Android 12 was the last big one. Confirm against the official Android splash screen and Expo splash screen documentation before a submission if it has been a while since your last release.
