@Override
            public void applyTransformation(float interpolatedTime, Transformation t) {
                // The minProgressArc is calculated from 0 to create an angle that
                // matches the stroke width.
                final float minProgressArc = (float) Math.toRadians(ring.getStrokeWidth()
                        / (2 * Math.PI * ring.getCenterRadius()));
                final float startingEndTrim = ring.getStartingEndTrim();
                final float startingTrim = ring.getStartingStartTrim();
                final float startingRotation = ring.getStartingRotation();
                // Offset the minProgressArc to where the endTrim is located.
                final float minArc = MAX_PROGRESS_ARC - minProgressArc;
                final float endTrim = startingEndTrim
                        + (minArc * START_CURVE_INTERPOLATOR.getInterpolation(interpolatedTime));
                ring.setEndTrim(endTrim);
                final float startTrim = startingTrim
                        + (MAX_PROGRESS_ARC * END_CURVE_INTERPOLATOR
                        .getInterpolation(interpolatedTime));
                ring.setStartTrim(startTrim);
                final float rotation = startingRotation + (0.25f * interpolatedTime);
                ring.setRotation(rotation);
                float groupRotation = ((720.0f / NUM_POINTS) * interpolatedTime)
                        + (720.0f * (mRotationCount / NUM_POINTS));
                setRotation(groupRotation);
            }
Set the colors used in the progress animation from color resources.
The first color will also be the color of the bar that grows in response
to a user swipe gesture.

@param colors
common/src/main/java/com/sxjs/common/widget/pulltorefresh/header/MaterialProgressDrawable.java