2012-05-10 12 views
6

Ho un oggetto ActionBarSherlock nel mio modulo. Sto leggendo le informazioni di stile in fase di esecuzione. Uno dei pezzi di stile è il colore di sfondo di ActionBar. Come posso cambiare questo in fase di runtime? Il colore può essere qualsiasi valore RGB.Cambia il colore di sfondo di ActionBarSherlock a livello di codice

+0

Guardare a questo http://stackoverflow.com/questions/10064411/change-actionbarsherlock-background-color – sonida

risposta

8

Forse questo aiuto: How to set title color in ActionBarSherlock? via stile o getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.ad_action_bar_gradient_bak)); tramite programmazione

Con il tema

// add theme in app 
<application android:theme="@style/MainTheme"></application> 

// MainTheme 
<style name="MainTheme" parent="Theme.Sherlock.Light.DarkActionBar">  
</style> 

// MainThemeGreen 
<style name="MainThemeGreen" parent="Theme.Sherlock.Light.DarkActionBar"> 
    <item name="android:actionBarStyle">@style/MainTheme.ActionBarStyle</item>   
</style> 

// ActionBar 
<style name="MainTheme.ActionBarStyle" parent="Widget.Sherlock.Light.ActionBar"> 
    <item name="android:background">@drawable/bg_green_actionbar</item> 
    <item name="android:titleTextStyle">@style/MainTheme.ActionBar.TitleTextStyle</item> 
</style> 

// Text style 
<style name="MainTheme.ActionBar.TitleTextStyle" parent="TextAppearance.Sherlock.Widget.ActionBar.Title"> 
    <item name="android:textColor">@color/White</item> 
</style> 

// bg_green_actionbar.xml 
<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape> 
      <solid android:color="#ff74af3b" /> 
     </shape> 
    </item> 
</layer-list> 

Dopo questo potete cambiare Tema su fly: setTheme (R.styles.MainThemeGreen);

+0

Si sta ancora specificando una risorsa drawable locale. Ho bisogno di farlo per qualsiasi colore che mi viene presentato da un servizio web. –

+0

Vedo la tua nuova modifica ma non sto seguendo come questo aiuta. Dopo l'avvio dell'app, chiamo un servizio Web e restituisce un colore. Diciamo che è # 123456. Come posso applicarlo al tuo # codice FF74af3b? –

6

Un modo:

mSupportActionBar = getSupportActionBar(); 
mSupportActionBar.setBackgroundDrawable(new ColorDrawable(0xff123456)); 

dove 0xff123456 è il vostro intero ARGB richiesto.

5

ho appena usato sotto Codice

getSupportActionBar().setBackgroundDrawable(new 
    ColorDrawable(Color.parseColor("#00853c"))); 

ha cambiato il colore bg. Spero che sia d'aiuto.

Problemi correlati