2017-06-21 19 views
0

當我的應用程序在後臺應用程序區段(或任何被調用的窗口)中顯示時,我想更改窗口欄的顏色和圖標。當我的Android應用程序處於後臺時,如何設置窗口欄的樣式

Screenshot of my smartphone screen

例如,Facebook的應用程序顯示在這個屏幕不同的圖標,它們ic_launcher圖標在藍色背景白色的「F」,在Instagram的應用程序從白色窗欄背景色爲黑色,有些應用程序會更改其窗口欄標題顏色等。我試圖搜索這些信息,但我不確定如何調用此功能或如何搜索此功能,因此我找不到解決方案。

任何幫助將不勝感激,謝謝大家提前。

回答

0

你將不得不使用ActivityManager.TaskDescription

this可能的複製。

0

如果有人遇到同樣的問題,這是解決的辦法:

風格你的應用程序在概述屏幕(也被稱爲[最近屏,最近的任務列表,或者最近使用的應用apprearence的唯一途徑)是設置一個ActivityManager.TaskDescription。因此,這是你怎麼做:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 

     String label = getString(R.string.app_name); 
     Bitmap icon = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_welcome_activity); 
     int color = ResourcesCompat.getColor(getResources(), R.color.colorPrimary600, null); 

     ActivityManager.TaskDescription taskDesc = new ActivityManager.TaskDescription(label, icon, color); 
     setTaskDescription(taskDesc); 

    } 

這必須在你活動onCreate()方法或的onResume()來完成,有的說他只用一種或另一種workds,但對我來說,在這兩個工作。您只需將這段代碼插入頂級Activity代碼中,因爲默認情況下,TaskDescription基於任務活動堆棧底部的活動,所以其他活動不會影響樣式,除非這些活動在運行時顯式設置TaskDescription。

請注意,文本顏色不能被強制使用,它會根據您的colorPrimary顏色自動生成(白色/黑色)。因此,將標籤顏色設置爲白色(即使Google似乎使用白色)的替代方法是將顏色較深的600原色設置爲TaskDescription顏色,正如我在上面的代碼中所做的那樣。較淺的顏色將文本設置爲黑色。

此外請確保您使用SDK版本檢查環繞setTaskDescription(taskDesc),因爲此功能僅在棒棒糖上引入。

對此解決方案的更深入的解釋可以找到here。希望這可以幫助。

相關問題