Android splash screen image sizes to fit all devices
Master System Design with Codemia
Enhance your system design skills with over 120 practice problems, detailed solutions, and hands-on exercises.
Introduction
The modern answer to Android splash screen sizing is not "export a giant bitmap for every device." On current Android, the recommended approach is to use the splash screen API, a theme-based background, and correctly sized icon assets so the system can scale them consistently.
The Big Shift: Android 12 and Later
Starting with Android 12, the system splash screen is standardized. That means you usually do not build a custom full-screen image layout as the primary launch screen anymore. Instead, you define splash styling through theme attributes.
In practice, that means:
- use a simple background color or drawable
- provide a properly sized app icon or splash icon
- optionally add branded imagery
- let the system render and animate the launch screen
This is much more reliable than trying to guess one perfect bitmap size for every phone and tablet.
Why One Static Splash Image Is Usually Wrong
The old approach was often a centered image stretched across density buckets. That caused problems:
- cropping on tall screens
- too much empty space on wide screens
- blurry scaling on dense devices
- large assets that slowed startup
The system splash screen avoids most of that by rendering predictable elements instead of a custom full-screen poster.
Current Sizing Guidance
The official guidance is based on splash icon dimensions in dp, not a table of per-device pixel sizes.
The key sizes are:
- splash icon with background:
240 x 240 dp, with the visible icon fitting inside a160 dpcircle - splash icon without background:
288 x 288 dp, with the visible icon fitting inside a192 dpcircle - branded image:
200 x 80 dp
Those values let Android scale correctly across densities. You provide drawable assets and let the framework map them to screen density.
Theme-Based Splash Screen Setup
A modern implementation is mostly theme configuration.
Then set the starting theme in the manifest:
Using the Compatibility Library
If you want one implementation that behaves sensibly on older Android versions too, use the Jetpack splash screen compatibility library.
This gives you a cleaner migration path than maintaining separate custom launch layouts for modern and older devices.
What To Put in the Assets
For the splash icon:
- prefer a simple logo or mark
- keep important content near the center
- do not include too much text
- avoid edge-to-edge details that will be clipped
For the branded image:
- treat it as optional
- keep it lightweight
- use it for subtle branding, not for a second full logo composition
If you still use raster assets, generate density-specific versions through normal drawable resource folders. But the design should still follow the dp guidance above.
When a Full-Screen Artwork Still Makes Sense
Sometimes teams still want a highly branded intro screen after launch. That is fine, but it should be an in-app screen, not a fake replacement for the system splash screen.
That distinction matters:
- the system splash screen covers process startup
- your in-app intro screen covers app-specific loading or branding
Trying to combine them into one heavy launch image usually hurts startup and looks worse on more devices.
Practical Design Advice
If your only goal is "fit all devices," the safest recipe is:
- solid background color
- centered icon
- optional branded strip
- no text that must align perfectly with screen edges
That scales better than manually composing phone-sized backgrounds for every form factor.
Common Pitfalls
- Using one giant bitmap and expecting it to look correct on every aspect ratio.
- Designing a splash screen as if it were a full poster instead of a system-rendered launch state.
- Packing too much text into the splash icon.
- Ignoring Android 12+ behavior and fighting the system splash screen instead of using it.
- Confusing
dpdesign guidance with hardcoded per-device pixel targets.
Summary
- Modern Android splash screens should be built around the splash screen API, not a custom full-screen image.
- Use properly sized icon assets in
dp, then let Android scale them across densities. - The official splash icon and branding sizes are more useful than old per-device bitmap tables.
- Use the Jetpack compatibility library if you need consistent behavior on older versions.
- Keep the launch screen simple and move rich branded artwork into the app itself.

