Похоже, что mPaint.setShadowLayer() вмешивается в директиву mPaint.EmbossMaskFilter(). Я не могу установить оба для моей краски, так как на холсте ничего не нарисовано.Android Paint EmbossMaskFilter, конфликтующий с setShadowLayer
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));
Это ожидаемое поведение, ошибка, или я что-то упускаю? Я строю для M, используя appcompat 7.23.14 с minSDK 11.
Это почти то же самое, что и мой обходной путь - рисунок объекта дважды. Но в моем случае я просто определяю 2 разные краски заранее. Ваш подход может быть хорошим для статического чертежа, но изменение цвета во время onDraw для анимированного пользовательского представления может быть слишком дорогостоящим. – halxinate