Android自定义ActionBar颜色?

时间:2014-11-07 11:39:29

标签: android colors android-actionbar customization android-theme

我想要什么?我想使ActionBar颜色可自定义,用户可以从颜色列表中选择颜色,ActionBar颜色将更改为其选定的颜色。

我做了什么?我有一个名为SettingsActivity的类,我从中选择颜色。他们选择的颜色存储在SharedPreferences中。选择的颜色用户将存储在SharedPreferences中,然后我通过意图重新启动应用程序,颜色发生变化。一切都在发挥作用。

但是每当我在一小段时间内启动应用程序时,应用程序会在values v-14文件夹中显示styles.xml中的默认颜色,然后颜色更改为用户选择的颜色,这是一个问题。我怎样才能消除这个错误?

我还附上了styles.xml的代码。如果需要任何其他细节或代码,那么请告诉我我也会提供,我正在使用导航抽屉碎片。

<resources>

<!--
    Base application theme for API 14+. This theme completely replaces
    AppBaseTheme from BOTH res/values/styles.xml and
    res/values-v11/styles.xml on API 14+ devices.

<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
     API 14 theme customizations can go here. 
</style>
 -->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- API 14 theme customizations can go here. -->
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
 <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
      <item name="android:background">#f39c12</item> 
   </style>
 </resources>

1 个答案:

答案 0 :(得分:1)

将此用于更改操作栏颜色:_

ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable("COLOR")); 

或使用此

    ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#ffFEBB31"));
actionBar.setBackgroundDrawable(colorDrawable);

由于