From 90490899549e1e46b35fb3d36a08a2f248f81b3a Mon Sep 17 00:00:00 2001 From: Jakub Grzywacz Date: Wed, 18 Sep 2024 13:13:59 +0200 Subject: [PATCH] fix: masked element layer opacity when previous item has stroke opacity (#2456) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Summary On Android when element before masked element has strokeOpacity different from 1, the paint is reused to draw an offscreen layer resulting in wrong opacity. Partially fixes (only on Android) #2449 ## Test Plan Add `stroke` and `strokeOpacity` to element directly before masked element. ## Compatibility | OS | Implemented | | ------- | :---------: | | Android | ✅ | --- android/src/main/java/com/horcrux/svg/RenderableView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/main/java/com/horcrux/svg/RenderableView.java b/android/src/main/java/com/horcrux/svg/RenderableView.java index a57ea46a7..990b7a2f4 100644 --- a/android/src/main/java/com/horcrux/svg/RenderableView.java +++ b/android/src/main/java/com/horcrux/svg/RenderableView.java @@ -377,7 +377,7 @@ void render(Canvas canvas, Paint paint, float opacity) { canvas.drawBitmap(elementBitmap, 0, 0, bitmapPaint); canvas.restoreToCount(saveCount); } else { - canvas.saveLayer(null, paint); + canvas.saveLayer(null, new Paint()); draw(canvas, paint, opacity); }