2015-05-18 136 views
2

我希望在我的主要活動中具有狀態欄和導航欄半透明,而所有其他活動都使用Material Design。半透明/ Tansparent狀態欄和導航欄

我走到這一步,是這樣的:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
    Window window = this.getWindow(); 
    window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
    window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); 
} 

但結果是:

enter image description here

我甚至試圖設置顏色爲透明:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    Window window = this.getWindow(); 
    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 
    window.setStatusBarColor(getResources().getColor(android.R.color.transparent)); 
    window.setNavigationBarColor(getResources().getColor(android.R.color.transparent)); 
} 

但是我沒有得到我想要製作導航按鈕的漸變陰影和狀態欄可見的圖標:

enter image description here

想法?

回答

6

我解決了這個問題。

我創建了一個模擬我一直在尋找,並把它作爲牆紙樹蔭下被拉伸,同時使狀態欄和導航欄透明:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    Window window = this.getWindow(); 
    Drawable background = this.getResources().getDrawable(R.drawable.background); 
    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 
    window.setStatusBarColor(getResources().getColor(android.R.color.transparent)); 
    window.setNavigationBarColor(getResources().getColor(android.R.color.transparent)); 
    window.setBackgroundDrawable(background); 
} 

這裏的結果:

enter image description here

+0

謝謝你!你救了我1天 –

1

從Android棒棒糖它是完全半透明的,沒有任何陰影。所以你應該做一個像#33000000的顏色來獲得狀態欄中的陰影。

編輯

我想你只能設置爲狀態欄的顏色。但是,您可以添加一個帶有漸變漸變的ImageView,並且只在棒棒糖上顯示。狀態欄高25dp。我認爲這也有一個屬性,但我不知道。這樣你可以模擬狀態欄中的漸變。

+0

#33000000只是給了我一個更透明的狀態欄(全黑的13%透明度),而不是我正在尋找的畢業生陰影。 – Ruocco

+0

@Jones這是你在棒棒糖上使用的:'window.setStatusBarColor(getResources()。getColor(android.R.color.transparent));'這是完全透明的(#00000000)我的答案確實是13%的透明度這給了一個陰影。那不是你的意思? –

+0

不,我正在尋找一種漸變色調,我們可以在「桌面」上看到。 對不起,如果我不清楚。 – Ruocco