2016-02-15 2 views
0

Я хочу изменить значок гамбургера и значок переполнения (только цвет), потому что я сделал mipmap-ресурсы того же цвета, что и я. (Поскольку мой фон ActionBars белый, я хочу, чтобы мое меню переполнения и цвет гамбургеров были синими). Я даю стиль ActionBar, и все работает так, как ожидалось, только иконы гамбургера и переполнения не меняются от дефолта Android. так как я могу изменить эти две иконки?Как изменить значок гамбургера и значок переполнения в андроиде?

вот такой стиль, который я даю своему ActionBar.

<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat"> 

<item name="android:actionBarStyle">@style/MyActionBar</item> 
<item name="actionBarStyle">@style/MyActionBar</item> 
<item name="android:dropDownListViewStyle">@style/PopupMenuListView</item> 
<item name="dropDownListViewStyle">@style/PopupMenuListView</item> 

<item name="actionBarDivider">@null</item> 


<item name="android:homeAsUpIndicator">@drawable/img_menu</item> 
<item name="homeAsUpIndicator">@drawable/img_menu</item> 

<!-- OverFlow Menu Text Color --> 
<item name="android:textColor">@color/white</item> 
</style> 
<!-- Set Custom Icon for Overflow Button in ActionBar --> 
<style name="OverflowButton" parent="@style/Widget.AppCompat.ActionButton.Overflow"> 
    <item name="android:src">@drawable/img_overflow</item> 
</style> 

<!-- ActionBar styles for Text Style, Background--> 
<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar"> 
    <item name="android:background">@color/white</item> 

    <item name="colorControlNormal">@color/lightBlue</item> 
    <item name="android:titleTextStyle">@style/MyActionBarTitleText</item> 
    <item name="titleTextStyle">@style/MyActionBarTitleText</item> 
</style> 

<!-- ActionBar styles for Text Style --> 
<style name="MyActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> 
    <item name="android:textColor">@color/lightBlue</item> 
    <item name="android:actionMenuTextColor">@color/dark_gray</item> 
</style> 

<!-- OverFlow menu Styles --> 
<style name="PopupMenuListView" parent="@style/Widget.AppCompat.Light.ListView.DropDown"> 
    <item name="android:divider">@color/white</item> 

    <item name="android:dividerHeight">1dp</item> 

    <item name="android:background">@color/transparent_color</item> 
</style> 

Это мой код активности.

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mToolbar = (Toolbar) findViewById(R.id.toolbar); 
    txt_title = (TextView)mToolbar.findViewById(R.id.txt_title); 
    Utilities.getInstance().setBoldFont(txt_title,this); 

    setSupportActionBar(mToolbar); 
    getSupportActionBar().setDisplayShowHomeEnabled(true); 

    drawerFragment = (FragmentDrawer) 
      getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer); 
    drawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), mToolbar); 
    drawerFragment.setDrawerListener(this); 

    // display the first navigation drawer view on app launch 

    if (AppConstants.isItemVisible.equals("5")) 
    displayView(5); 

    else displayView(1); 
} 

ответ

0
<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item> 
</style> 

<style name="DrawerArrowStyle" parent="@style/Widget.AppCompat.DrawerArrowToggle"> 
    <item name="spinBars">true</item> 
    <item name="color">@android:color/black</item> 
</style> 

Смотрите эту строку из кода выше

<item name="color">@android:color/black</item> 

Измените цвет на все, что вы хотите

+0

я попытался сделать это, но это не помогает .. это был ответ одного вопроса на переполнение стека. – Newbiee

+0

В чем проблема с этим –

+0

, и мне будет лучше, если я смогу изменить его на мои рисунки, я хочу, чтобы я разместил свой собственный значок гамбургера. – Newbiee

0

Это должно заботиться о своем гамбургера icon-

Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_menu, null); 
drawable = DrawableCompat.wrap(drawable); 
DrawableCompat.setTint(drawable, Color.BLUE); 
actionBar.setHomeAsUpIndicator(drawable); 

Теперь для вашего меню переполнения -

<resources> 

    <style name="my_app_action_bar_theme" parent="android:Theme.Holo.Light"> 
     <item name="android:popupMenuStyle">@style/MyApp.PopupMenu</item> 

    </style> 

    <!-- The beef: background color for Action Bar overflow menu --> 

    <style name="MyApp.PopupMenu" parent="android:Widget.Holo.Light.ListPopupWindow"> 
     <item name="android:popupBackground">@drawable/menu_dropdown_panel</item> 
     <item name="android:background">@drawable/menu_dropdown_panel</item> 
    </style> 
</resources> 

menu_dropdown_panel .Поместить это в вашей вытяжке папке. -

<corners android:radius="3.0dip" /> 

<stroke 
    android:width="1.0dip" 
    android:color="@color/transparent" /> 

<solid android:color="@color/blue" /> 

И в вашем ANDROID_MANIFEST

<application 
    android:theme="@style/my_app_action_bar_theme" 
    ... > 

UPDATE: Кроме того, необходимо указать это в вашем XML для

Панель инструментов
<android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/hotspot_blue" 
     app:theme="@style/my_action_bar_theme" 
     app:popupTheme="@style/MyApp.PopupMenu" 
     /> 

И не забудьте включить этот

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
toolbar.setTitle(getString(R.string.app_name)); 
setSupportActionBar(toolbar); 
Смежные вопросы