diff --git a/android/src/main/java/com/horcrux/svg/MarkerView.java b/android/src/main/java/com/horcrux/svg/MarkerView.java index dc130c241..e813f6bc2 100644 --- a/android/src/main/java/com/horcrux/svg/MarkerView.java +++ b/android/src/main/java/com/horcrux/svg/MarkerView.java @@ -151,7 +151,9 @@ void renderMarker(Canvas canvas, Paint paint, float opacity, RNSVGMarkerPosition if (mAlign != null) { RectF vbRect = new RectF(mMinX * mScale, mMinY * mScale, (mMinX + mVbWidth) * mScale, (mMinY + mVbHeight) * mScale); Matrix viewBoxMatrix = ViewBox.getTransform(vbRect, eRect, mAlign, mMeetOrSlice); - canvas.concat(viewBoxMatrix); + float[] values = new float[9]; + viewBoxMatrix.getValues(values); + canvas.scale(values[Matrix.MSCALE_X], values[Matrix.MSCALE_Y]); } double x = relativeOnWidth(mRefX); diff --git a/ios/Elements/RNSVGMarker.m b/ios/Elements/RNSVGMarker.m index c9381aac7..b1827580f 100644 --- a/ios/Elements/RNSVGMarker.m +++ b/ios/Elements/RNSVGMarker.m @@ -183,7 +183,7 @@ - (void)renderMarker:(CGContextRef)context rect:(CGRect)rect position:(RNSVGMark eRect:eRect align:self.align meetOrSlice:self.meetOrSlice]; - CGContextConcatCTM(context, viewBoxTransform); + CGContextScaleCTM(context, viewBoxTransform.a, viewBoxTransform.d); } CGFloat x = [self relativeOnWidth:self.refX];