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.

Splash screen source artwork sizes in pixels
AssetSize (px)Notes
Expo splash icon1024 × 1024Transparent PNG. expo-splash-screen scales it on device via imageWidth
Flutter splash image1024 × 1024flutter_native_splash scales it to each device; keep the background transparent
Flutter Android 12+ image960 × 960Must fit inside a 640 px circle — exported separately as splash12.png
Branding image800 × 320200x80dp 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.

Android 12+ splash screen sizes in dp
ElementSize (dp)Notes
App icon without background288 × 288Mark must fit inside a 192 dp circle
App icon with background240 × 240Mark must fit inside a 160 dp circle
Branded image200 × 80Optional — 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

  1. Author the splash artwork once on a square canvas, transparent where the background shows through.
  2. Keep the mark inside the circle that Android 12+ will clip to.
  3. Export the source images, the Android 12+ safe-zone variant, and branding separately.
  4. 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.