How to set icon color of MenuItem? How to set icon color of MenuItem? android android

How to set icon color of MenuItem?


The icon is actually provided by the ShareActionProvider and you can't change it afaik. You can, however, customize the color by setting the textColorPrimary in your styles.xml:

<android.support.v7.widget.Toolbar    android:id="@+id/toolbar"    android:layout_width="match_parent"    android:layout_height="?attr/actionBarSize"    app:theme="@style/MyActionBarTheme"    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

<style name="MyActionBarTheme" parent="ThemeOverlay.AppCompat.Dark.ActionBar">    <item name="android:textColorPrimary">#fa0</item></style>

For any custom icons, you would have to color them yourself, ie.

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {    getMenuInflater().inflate(R.menu.menu_main, menu);    for(int i = 0; i < menu.size(); i++){        Drawable drawable = menu.getItem(i).getIcon();        if(drawable != null) {            drawable.mutate();            drawable.setColorFilter(getResources().getColor(R.color.textColorPrimary), PorterDuff.Mode.SRC_ATOP);        }    }    return true;}


Short and Sweet Answer--> app:iconTint="@color/yourcolor

add app:iconTint="@color/yourcolor" in your MenuItem for change the Icon color.

<item    android:icon="@drawable/ic_share_white_24dp"    android:id="@+id/action_share"    android:title="@string/action_share"    android:orderInCategory="200"    app:iconTint="@color/yourcolor"    app:showAsAction="ifRoom"    app:actionProviderClass="android.support.v7.widget.ShareActionProvider"/>


This is a theming issue. Depending on your current theme, you need to set the correct ActionBar overlay theme. The Action Provider reads a value in the theme (which indicates if the theme is dark or light) to determine the color of the icon.

If your main theme is light and your ActionBar is dark, your ActionBar/Toolbar must use the theme ThemeOverlay.AppCompat.Dark.ActionBar.