It looks like the mPaint.setShadowLayer() interferes with the mPaint.EmbossMaskFilter() directive. I cannot have both set for my paint, as there is nothing is drawn on the canvas otherwise.
mPaintRing = new Paint();
mPaintRing.setFlags(Paint.ANTI_ALIAS_FLAG);
mPaintRing.setColor(colorGold);
mPaintRing.setDither(true);
mPaintRing.setShadowLayer(3,0,15,colorBackShadow);
mPaintRing.setStyle(Paint.Style.STROKE);
mPaintRing.setMaskFilter(new EmbossMaskFilter(new float[]{0, 1, 1},0.7f, 6.0f, 7.5f));
Is that an expected behavior, a bug, or am I missing something? I'm building for M using the appcompat 7.23.14 with minSDK 11.
The workaround is to use another drawable with the same outer contour shape and location with the paint having the shadow layer but no emboss, and draw it prior to drawing the embossed one. To avoid possible anti-aliasing artifacts that paint should have a transparent color attrib.