2016-07-31 48 views
11

正如我們所知,在sdk等級11中允許使用動作欄的彩色背景,請參閱this。但有一些應用程序使用彩色動作欄,其分辨率低於11.例如Whatsapp有綠色動作欄,但具有最小sdk:7 WhatsApp FAQ,或者電報應用程序有最小sdk:8 Telegram FAQ,但具有藍色操作欄。如何更改操作欄的背景顏色而不增加min sdk?

這些應用程序如何工作?我該如何做到這一點?

android.app.ActionBar actionBar = (android.app.ActionBar) getActionBar(); 
actionBar.setDisplayShowHomeEnabled(false); 
View mActionBarView = getLayoutInflater().inflate(R.layout.action_bar_main, null); 
actionBar.setCustomView(mActionBarView); 
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 

此代碼要求minSdk = 11,對於getActionBar()。請幫幫我。

+3

他們可能要麼使用圖書館或可能有自己的執行動作條的(作爲佈局)。大概。 – Shaishav

+0

'setSupportActionBar'?這允許一個分鐘的API 7工具欄,我相信 –

回答

6

Toolbar(在棒棒糖中引入的ActionBar的新名稱)只是一個普通的視圖。

鏈接:https://developer.android.com/reference/android/support/v7/widget/Toolbar.html

您只需設置它的背景像任何其他視圖。

// java 
toolbar.setBackgroundColor(int color); 
// or 
toolbar.setBackgroundResource(int resId); 

// or XML 
android:background="@drawable/toolbarBackground" 
+2

馬克已經回答:) – Warpzit

+0

你提供的參考鏈接沒有列出'setBackgroundColor()'或'setBackgroundResource()'方法,或者我錯過了什麼? – Talha

+0

@Talha顯然是的,你錯過了一個重要的細節;我提供的官方文檔鏈接顯示'工具欄'從'視圖'擴展。 setBackground方法來自視圖類 – Budius

0

要更改的工具欄的顏色使用:

getSupportActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.toolbar_color_primary)));