Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android, how to make a Splash Screen aka Launch Screen without the white screen?

As many other Android developers, I'm not a huge fan of splash screens, but still most customers want them because iPhone has them or some other "great" reason.

In the android guidelines it says:

Naturally, you want everyone to quickly learn the ropes, discover the cool features, and get the most out of your app. So you might be tempted to present a one-time introductory slideshow, video, or splash screen to all new users when they first open the app. Or you might be drawn to the idea of displaying helpful text bubbles or dialogs when users interact with certain features for the first time.

Link here, first paragraph in "Don't show unsolicited help, except in very limited cases"

And now in the material design guidelines they recommend developers to use a "Launch Screen"

Because launching your app while displaying a blank canvas increases its perceived loading time, consider using a placeholder UI or a branded launch screen.

I'm guessing the android website hasn't been updated yet. Anyway, the last version of Hangouts (5.0.104...) has a very nice and quick Launch Screen. Its displayed instantly on my Nexus 5 with Marshmallow. So my question, is there an "official" way of doing this?

I've been searching for examples but can't find anything except for kind of workarounds like this example here which uses what I think is the most common approach with a Splash Screen Activity. This, however, shows a white screen when the app has been destroyed before your actual splash screen is shown.

This second example uses a theme with a window background which is shown instantly but disappears almost equally quick.

So, how does Google make the Launch screen like in Google Hangouts which is shown without delay and without any white screen before?

like image 291
just_user Avatar asked Oct 20 '15 16:10

just_user


People also ask

How do I get rid of white screen before splash screen flutter?

On the right hand side under properties, you will find the background attribute. Clicking on this and choosing custom will allow you to define the RGB value to override the white screen. After following these steps, your app will now no longer show the annoying white screen on either Android or iOS.

Is launch screen the same as splash screen?

Splash Screen is the very first screen the user sees when they open up an app on a mobile device. It's the very first chance of creating a positive impact on the users. It appears while the app is loading when the user has just opened up the app. Many times the Splash screen is called a launch screen.


1 Answers

A colleague from my work have been in a material design training at Google HQ in London and their official way of doing it is using the windowBackground in the theme as you posted on your own question: http://antonioleiva.com/branded-launch-screen/

The idea is that the XML theme gets show very very fast by the framework, and as soon as your actual layout is loaded it will be visible.

The difference between Hangouts or even Google Maps, is that their layout is a very heavy/complex layout and they simply take longer to load than a HelloWorld app.

As your app grows and gets more complex and with more elements being initialized during Application.onCreate or Activity.onCreate, your slash screen will also be visible for longer time.

edit:

I've found a Google+ post from the official "Android Developers" profile and repost from Google engineer Ian Lake saying the same thing:

https://plus.google.com/+AndroidDevelopers/posts/Z1Wwainpjhd https://plus.google.com/+IanLake/posts/SW7F2CJvAmU

like image 162
Budius Avatar answered Oct 10 '22 17:10

Budius