2012-05-10 7 views
6

У меня есть ActionBarSherlock на моей форме. Я читаю информацию о стиле во время выполнения. Одним из элементов стиля является цвет фона ActionBar. Как я могу изменить это во время выполнения? Цвет может быть любым значением RGB.Изменить цвет фона ActionBarSherlock программно

+0

Посмотрите на этот http://stackoverflow.com/questions/10064411/change-actionbarsherlock-background-color – sonida

ответ

8

Может быть, это поможет: How to set title color in ActionBarSherlock? через стиль или getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.ad_action_bar_gradient_bak)); с помощью программно

с темой

// 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> 

После этого вы можете изменить тему на лету: setTheme (R.styles.MainThemeGreen);

+0

Вы по-прежнему указываете локальный ресурс, пригодный для рисования. Мне нужно сделать это для любого цвета, который был представлен мне из веб-службы. –

+0

Я вижу ваше новое редактирование, но я не понимаю, как это помогает. После запуска приложения я вызываю веб-службу и возвращает цвет. Скажем, это №123456. Как применить это к вашему жесткому кодированному # FF74af3b? –

6

Один из способов:

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

где 0xff123456 Ваш требуется ARGB целое.

5

я использовал код ниже

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

она изменила цвет BG. Надеюсь, поможет.

Смежные вопросы