I've noticed that using AppCompat themes, default toolbar icons get tinted by the attribute colorControlNormal
in my style.
<style name="MyTheme" parent="Theme.AppCompat"> <item name="colorControlNormal">@color/yellow</item> </style>
As you can see above, however, it does not happen with all icons. I provided the "plus" sign, which I got from the official icons, and it does not get tinted (I used the "white" version of the png). From what I have understood from this question, system tints only icons with just an alpha channel. Is this true?
If so: Is there a place where I can find alpha-defined, official material icons? If not - and if Toolbar icons need to be alpha-only to be tinted - how is Google expecting us to use provided icons in a Toolbar?
Somewhere in the SDK I found some icons ending in _alpha.png
, and they actually get tinted well. However I need the full set of material icons, and from the official sources I could only find white
, grey600
and black
ones.
Applying a ColorFilter
at runtime would be slightly painful, and my actual Toolbar - with some icons tinted, some others not - looks quite bad.
boxme/Android Color Control Cheat Sheet For instance, "android:colorControlNormal" becomes "colorControlNormal". These attributes will be propagated to their corresponding attributes within the android namespace. for devices running Lollipop. Any exceptions to this will be noted by including the "android:" prefix.
Another option is to use the new support for vector drawables in the support library.
See res/xml/ic_search.xml
in blog post AppCompat — Age of the vectors
Notice the reference to ?attr/colorControlNormal
<vector xmlns:android="..." android:width="24dp" android:height="24dp" android:viewportWidth="24.0" android:viewportHeight="24.0" android:tint="?attr/colorControlNormal"> <path android:pathData="..." android:fillColor="@android:color/white"/> </vector>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With