2015-10-20 52 views
5

與其他許多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一樣顯示,並且沒有任何延遲,並且之前沒有任何白屏?

回答

12

從我工作的一個同事已經在谷歌總部在倫敦的材料設計培訓,做它在主題,你貼在你自己的問題使用windowBackground的官方途徑:http://antonioleiva.com/branded-launch-screen/

這個想法是,XML主題在框架中顯示得非常快,只要你的實際佈局被加載,它就會被看到。

環聊甚至谷歌地圖的區別在於,它們的佈局非常繁重/佈局複雜,而且他們只需要花費更長的時間就可以完成加載,而不是一個HelloWorld應用程序。

隨着您的應用程序變得越來越複雜,並且在Application.onCreateActivity.onCreate期間初始化更多元素,您的斜槓屏幕也將在更長的時間內可見。

編輯:

我發現從官方的 「Android開發者」 的個人資料Google+信息中,並從谷歌工程師伊恩·湖轉貼說同樣的事情:

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

+1

ps .:檢查我的編輯。我找到了一些G +的帖子。 – Budius

0

這是因爲第一個解決方案(http://antonioleiva.com/branded-launch-screen/)正在改變onCreate中的主題。 但是您的活動的小部件尚未呈現在onCreate。這就是爲什麼你看到白色屏幕。第二個例子是一個很好的例子。如果您需要更長時間將SPLASH_TIME設置更長時間。請在doInBackground函數中檢查線路Thread.sleep(SPLASH_TIME)。您可以等待更多。