它看起來像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));
這是預期的行爲,錯誤還是我錯過了什麼?我正在使用帶有minSDK 11的appcompat 7.23.14來構建M。
這實際上與我的解決方法幾乎相同 - 繪製對象兩次。但就我而言,我只是預先定義了2種不同的塗料。 您的方法可能適用於靜態繪圖,但在onDraw中爲動畫自定義視圖更改繪畫可能太昂貴。 – halxinate