private ArcAnimator(ArcMetric arcmetric, View target) { mArcMetric = arcmetric; mTarget = new WeakReference<>(target); mAnimator = new WeakReference<>( ObjectAnimator.ofFloat( ArcAnimator.this, // target "degree", // property arcmetric.getStartDegree(), arcmetric.getEndDegree())); }
public static ArcAnimator createArcAnimator( View clipView, float endX, float endY, float degree, Side side) { ArcMetric arcMetric = ArcMetric.evaluate( Utils.centerX(clipView), Utils.centerY(clipView), endX, endY, degree, side); return new ArcAnimator(arcMetric, clipView); }
void setDegree(float degree) { mValue = degree; View clipView = mTarget.get(); float x = mArcMetric.getAxisPoint().x + mArcMetric.mRadius * Utils.cos(degree); float y = mArcMetric.getAxisPoint().y - mArcMetric.mRadius * Utils.sin(degree); ViewHelper.setX(clipView, x - clipView.getWidth() / 2); ViewHelper.setY(clipView, y - clipView.getHeight() / 2); }
@Override public String toString() { return mArcMetric.toString(); }