Use RoundRect clipping for circle reveal animation
bug:16630975
Also, remove inverse clipping feature from reveal animator.
Change-Id: I770a4eb48cd123b0ca0f39d16a0f3eefd1be3653
diff --git a/core/java/android/animation/RevealAnimator.java b/core/java/android/animation/RevealAnimator.java
index 53d92e6..e363a77 100644
--- a/core/java/android/animation/RevealAnimator.java
+++ b/core/java/android/animation/RevealAnimator.java
@@ -30,7 +30,6 @@
private View mClipView;
private int mX, mY;
- private boolean mInverseClip;
private float mStartRadius, mEndRadius;
private float mDelta;
private boolean mMayRunAsync;
@@ -41,14 +40,13 @@
private RenderNodeAnimator mRtAnimator;
public RevealAnimator(View clipView, int x, int y,
- float startRadius, float endRadius, boolean inverseClip) {
+ float startRadius, float endRadius) {
mClipView = clipView;
mStartRadius = startRadius;
mEndRadius = endRadius;
mDelta = endRadius - startRadius;
mX = x;
mY = y;
- mInverseClip = inverseClip;
super.setValues(PropertyValuesHolder.ofFloat("radius", startRadius, endRadius));
}
@@ -57,12 +55,12 @@
super.animateValue(fraction);
fraction = getAnimatedFraction();
float radius = mStartRadius + (mDelta * fraction);
- mClipView.setRevealClip(true, mInverseClip, mX, mY, radius);
+ mClipView.setRevealClip(true, mX, mY, radius);
}
@Override
protected void endAnimation(AnimationHandler handler) {
- mClipView.setRevealClip(false, false, 0, 0, 0);
+ mClipView.setRevealClip(false, 0, 0, 0);
super.endAnimation(handler);
}
@@ -92,7 +90,7 @@
mRtAnimator = null;
}
if (canRunAsync()) {
- mRtAnimator = new RenderNodeAnimator(mX, mY, mInverseClip, mStartRadius, mEndRadius);
+ mRtAnimator = new RenderNodeAnimator(mX, mY, mStartRadius, mEndRadius);
mRtAnimator.setDuration(getDuration());
mRtAnimator.setInterpolator(getInterpolator());
mRtAnimator.setTarget(mClipView);