2012-05-10 24 views
6

Tengo un ActionBarSherlock en mi formulario. Estoy leyendo información de estilo en tiempo de ejecución. Una de las piezas de estilo es el color de fondo de ActionBar. ¿Cómo puedo cambiar esto en tiempo de ejecución? El color puede ser cualquier valor RGB.Cambiar el color de fondo de ActionBarSherlock programmatically

+0

Mire este http://stackoverflow.com/questions/10064411/change-actionbarsherlock-background-color – sonida

Respuesta

8

Tal vez esto ayuda: How to set title color in ActionBarSherlock? a través de estilo o getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.ad_action_bar_gradient_bak)); a través de programación

Con el 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> 

Después de esto puede cambiar en tema en marcha: setTheme (R.styles.MainThemeGreen);

+0

Aún está especificando un recurso dibujable localmente. Necesito hacerlo para cualquier color que me presente desde un servicio web. –

+0

Veo su nueva edición pero no estoy siguiendo cómo esto ayuda. Después de que se inicia la aplicación, llamo a un servicio web y devuelve un color. Diga que es # 123456. ¿Cómo lo aplico a tu # FF74af3b codificado? –

6

Una manera:

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

donde 0xff123456 es el número entero ARGB requerido.

5

acabo de utilizar a continuación Código

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

cambió el color de BG. Espero eso ayude.

Cuestiones relacionadas