Android,如何制作一个没有白屏的Splash Screen aka Launch Screen?
与其他许多Android开发者一样,我不是闪屏的狂热粉丝,但仍然是大多数客户需要他们,因为iPhone有他们或其他“很好”的理由。Android,如何制作一个没有白屏的Splash Screen aka Launch Screen?
在它说Android指南:
当然,你希望每个人都能够快速学习的绳索,发现很酷的功能,并获得最出你的应用程序。因此,当您第一次打开应用程序时,您可能会试图向所有新用户展示一次性介绍性幻灯片,视频或启动画面。或者,当用户第一次与特定功能交互时,您可能会想到显示有用的文本泡泡或对话框。
链接here,在第一款“不显示不请自来的帮助,除了在非常有限的情况下”
而现在在他们推荐的材料设计指导开发人员使用"Launch Screen"
由于在显示空白画布时启动您的应用会增加其感知的加载时间,因此请考虑使用占位符UI或品牌启动屏幕。
我猜android网站还没有更新。无论如何,最新版的环聊(5.0.104 ...)有一个非常好的快速启动屏幕。它立即显示在我的Nexus 5与棉花糖。所以我的问题是,有没有这样做的“官方”方式?
我一直在寻找例子,但找不到任何东西,除了像这个例子here这样的解决方法之外,它使用我认为是Splash Screen Activity最常用的方法。但是,当您的实际启动屏幕显示之前,该应用程序已被销毁时,会显示一个白色屏幕。
second example这个second example使用一个窗口背景的主题,即时显示,但几乎同样快速消失。
那么,Google如何使Google环境中的启动屏幕像Google Hangouts一样显示,并且没有任何延迟,并且之前没有任何白屏?
从我工作的一个同事已经在谷歌总部在伦敦的材料设计培训,做它在主题,你贴在你自己的问题使用windowBackground
的官方途径:http://antonioleiva.com/branded-launch-screen/
这个想法是,XML主题在框架中显示得非常快,只要你的实际布局被加载,它就会被看到。
环聊甚至谷歌地图的区别在于,它们的布局非常繁重/布局复杂,而且他们只需要花费更长的时间就可以完成加载,而不是一个HelloWorld
应用程序。
随着您的应用程序变得越来越复杂,并且在Application.onCreate
或Activity.onCreate
期间初始化更多元素,您的斜杠屏幕也将在更长的时间内可见。
编辑:
我发现从官方的 “Android开发者” 的个人资料Google+信息中,并从谷歌工程师伊恩·湖转贴说同样的事情:
https://plus.google.com/+AndroidDevelopers/posts/Z1Wwainpjhd https://plus.google.com/+IanLake/posts/SW7F2CJvAmU
这是因为第一个解决方案(http://antonioleiva.com/branded-launch-screen/)正在改变onCreate中的主题。 但是您的活动的小部件尚未呈现在onCreate。这就是为什么你看到白色屏幕。第二个例子是一个很好的例子。如果您需要更长时间将SPLASH_TIME设置更长时间。请在doInBackground函数中检查线路Thread.sleep(SPLASH_TIME)。您可以等待更多。
ps .:检查我的编辑。我找到了一些G +的帖子。 – Budius