2017-02-26 260 views
2

我正嘗試用這篇文章爲android應用程序創建初始屏幕:Splash Screens the Right Way。正如文章所說,我創建了具有兩層的LayerDrawable:背景位圖和徽標(也是位圖)。例如,徽標需要位於屏幕底部,縮進32dp。這裏我繪製:安卓半透明狀態欄,但非半透明導航欄(如果有)

<item 
    android:drawable="@drawable/splash_image" /> 

<item 
    android:id="@+id/logo" 
    android:bottom="@dimen/margin_splash"> 

    <bitmap 
     android:gravity="bottom|center" 
     android:src="@drawable/logo_green" /> 
</item> 

我指出這一點可繪製在我的飛濺活動主題android:windowBackground PARAM。我還希望在支持此功能的設備上顯示啓動畫面時,透明狀態欄(API> = 19),因此我爲不同的android版本創建了兩個資源文件,並在values-v19 \ styles.xml中創建了兩個資源文件,我標記爲android:windowTranslucentStatus這是真的。這裏我values/styles.xmlvalues-v19/styles.xml

值/ styles.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <item name="android:windowBackground">@drawable/bg_splash</item> 
    </style> 
</resources> 


值-V19/styles.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <item name="android:windowBackground">@drawable/bg_splash</item> 
     <item name="android:windowTranslucentStatus">true</item> 
    </style> 
</resources> 

但在一些帶有軟導航欄Android設備我的標誌與它重疊。 Logo overlapping by NavigationBar
我試圖指出android:windowTranslucentNavigation標誌爲假但沒有成功。

是否有任何方法使Android軟件NavigationBar與透明狀態欄一起透明,或者我需要在我的splash活動的onCreate方法中檢測Soft NavigationBar可用性,並通過向NavigationBar的高度添加徽標的底部縮進來更新我的LayerDrawable?

感謝。

回答

0

你試過這個嗎?

<item name="android:navigationBarColor">@android:color/transparent</item> <item name="android:windowTranslucentStatus">false</item> <item name="android:windowTranslucentNavigation">false</item> 

此外,您可以在圖層可繪製的位圖項中填充一個小底部。

0

我遇到了同樣的問題,並通過設置下列屬性來解決此問題。

<item name="android:windowDrawsSystemBarBackgrounds">false</item> 

該屬性設置爲values-v21目錄。