

You might wonder when to tint the assets and when to use theme colors on individual paths as both can attain similar results? If you want to use theme colors on only some paths, then you have to use them directly. For this reason, if you plan to tint icons then it’s best to use a fully opaque fill/stroke color (convention is to use #fff). The default src_in is usually what you want and treats the image as an alpha mask applying the single tint color to the entire icon, ignoring any color information in the individual paths (although the alpha channel is maintained). The tintMode attribute lets you change the blending mode used to tint the drawable, it supports: add, multiply, screen, src_atop, src_over or src_in corresponding to the equivalent PorterDuff.Mode. Applying a standard tint like ?attr/colorControlNormal to icons both gets you themeing and guarantees that assets are exactly the same, correct color. Tinting an icon so that it is appropriately colored on light/dark screensĪ benefit of using tints is that you aren’t reliant on the source artwork for your assets (usually from your designer) being the correct color. Vectors support the resource syntax for both fill and stroke colors: The separate alpha attributes make it easier to animate the opacity of a path. For example if you specified a 50% transparent red fillColor ( #80ff0000) and a 0.5 fillAlpha then the result would be 25% transparent red. If you specify a fillColor or strokeColor with an alpha component then these two values are combined. Dashed strokes are not supported.īoth fills and strokes offer separate alpha properties: fillAlpha and strokeAlpha both of which default to 1 i.e.

Strokes are always centered (again unlike some graphics apps which allow inner or outer strokes), require a strokeWidth to be specified and can optionally define strokeLineCap, strokeLineJoin properties which control the shape of the ends/joins of stroked lines (also strokeMiterLimit for miter line joins). Fills are drawn first, then any stroke is applied. You can define one or both of these properties and only a single fill/stroke can be applied per path (unlike some graphics packages).
