Potential fix
diff --git a/lottie/src/main/java/com/airbnb/lottie/animation/content/BaseStrokeContent.java b/lottie/src/main/java/com/airbnb/lottie/animation/content/BaseStrokeContent.java index 2025245..f705fc9 100644 --- a/lottie/src/main/java/com/airbnb/lottie/animation/content/BaseStrokeContent.java +++ b/lottie/src/main/java/com/airbnb/lottie/animation/content/BaseStrokeContent.java
@@ -1,7 +1,5 @@ package com.airbnb.lottie.animation.content; -import static com.airbnb.lottie.utils.MiscUtils.clamp; - import android.graphics.BlurMaskFilter; import android.graphics.Canvas; import android.graphics.ColorFilter; @@ -11,11 +9,9 @@ import android.graphics.Path; import android.graphics.PathMeasure; import android.graphics.RectF; - import androidx.annotation.CallSuper; import androidx.annotation.NonNull; import androidx.annotation.Nullable; - import com.airbnb.lottie.L; import com.airbnb.lottie.LottieDrawable; import com.airbnb.lottie.LottieProperty; @@ -37,6 +33,8 @@ import java.util.ArrayList; import java.util.List; +import static com.airbnb.lottie.utils.MiscUtils.clamp; + public abstract class BaseStrokeContent implements BaseKeyframeAnimation.AnimationListener, KeyPathElementContent, DrawingContent { @@ -265,10 +263,7 @@ } else { startValue = startLength / length; } - float endValue = Math.min((endLength - trimPathTotalLength) / length, 1); - if (startValue == endValue && endLength != startLength) { - endValue += 1; - } + float endValue = startValue + (endLength - startLength) / length; Utils.applyTrimPathIfNeeded(trimPathPath, startValue, endValue, 0); canvas.drawPath(trimPathPath, paint); } else {