Android啟動頁黑屏的解決方案

來源:互聯網
上載者:User

標籤:splash   drawable   建立   inf   lis   時間   round   圖片   慢慢   

一般APP啟動都會顯示一個白屏或者黑屏的頁面,再跳到歡迎頁面,這樣子的體驗效果不好。這到底是怎麼回事呢?要如何解決它呢?今天我們來分析下它產生的原因,以及解決方案。

1、產生原因

當系統啟動一個APP時,zygote進程首先會建立一個進程去執行這個APP,但是建立進程是需要時間的,使用者點擊後以為沒響應會再次點擊,這樣的體驗效果不佳。為瞭解決這種迷之尷尬,Android系統會根據你的manifest中設定的主體顏色來顯示一個白屏或者黑屏,它的正式稱呼是Preview window,即預覽視窗。

2、解決方案

這個問題的本質是,雖然代碼還沒執行,但是設定檔被提前讀取了,所以我們主要針對mainfest來解決這個問題,更準確的說,是主題設定檔

(1)修改啟動的Activity的主題

具體方法如下: style.xlm

<style name="APPTheme" parent="@android:style/Theme.Holo.NoActionBar">    <item name="android:windowBackground">@drawable/splash_icon</item></style>
同樣將主題設定到啟動的Activity的主題中,windowBackground就是即將展示的preview window。其中splash_icon可以是一整張圖片,網上很多小夥伴也都是這麼做的。其實它也可以是一個能解析出圖片資源的XML檔案,好像只有layer-list這種能做得到,因為它能夠將多個drawable疊加起來展示。這樣子就可以解決黑白屏的問題了。 (2)進一步最佳化:添加動畫一般我們的APP啟動後都會有歡迎頁面,然後再進入首頁。按照上面的做法,會先顯示圖片,接著顯示歡迎頁面,然後到首頁,由圖片到歡迎頁面的跳轉過渡很突兀,強迫症分分鐘不能忍呀~所以我們進行進一步的最佳化:添加動畫。實際上Preview window只能是靜態圖,展示不了動畫。我們的做法是在跳到歡迎頁面中實現動畫,就是在Preview widow跳轉到歡迎頁面時,先顯示一個跟Preview window頁面一模一樣的頁面,讓人覺得好像沒有切換似的,然後再慢慢切換到歡迎頁面。 這裡有個小問題要注意下:我們給Preview window設定的背景圖如果不作處理,是會一直存在在記憶體中的,所以在進入歡迎頁面的onCreate中將背景圖還原:
getWindow().setBackgroundDrawableResource(android.R.color.white);

到此啟動頁黑白屏的問題可以交貨咯~

Android啟動頁黑屏的解決方案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.