2014年8月13日 星期三

Android 開發 (六十一) Splash Screen

不知道各位是否有遇過,打開APP時總是一片空白,或者是start一個新的activity時,畫面總是空白,如下圖所示,在app開起的瞬間是一片白色畫面,過了幾秒鐘之後,所有的ui才一起出現,這其實並不是BUG,而是android先去load了 activity的 Theme之後才去讀取你的App畫面。



既然知道問題的原因,那要解決這個問題的辦法也很簡單,我們只需要將開啟app時所load的Theme換掉就好了。

可以看到從一打開app我們想顯示的logo就一直存在,再也沒有白畫面的問題,
這樣就可以製作出Splash Screen了。

好了,原理講完了,接著就是該如何實作,
首先要先製作Splash Screen的頁面



<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#FFFFFF" />
        </shape>
    </item>
    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/ic_launcher" />
    </item>

</layer-list>

接著客制化我們的Style
    <style name="myTheme" parent="Theme.AppCompat.Light">
        <item name="android:windowBackground">@drawable/mylayer</item>
    </style>

接著將我們的style套到我們的Activity上

        <activity
            android:name="com.yesnews.sample.MainActivity"
            android:label="@string/app_name"  
            android:theme="@style/myTheme"
            >

           ......


如此就大功告成了!!
我們想要的Splash Screen不再會有白畫面的問題了~

沒有留言:

張貼留言