Search in sources :

Example 1 with RevealInfo

use of org.aisen.weibo.sina.ui.widget.io.codetail.animation.RevealAnimator.RevealInfo in project AisenWeiBo by wangdan.

the class ViewAnimationUtils method createCircularReveal.

/**
     * Returns an Animator which can animate a clipping circle.
     * <p>
     * Any shadow cast by the View will respect the circular clip from this animator.
     * <p>
     * Only a single non-rectangular clip can be applied on a View at any time.
     * Views clipped by a circular reveal animation take priority over
     * {@link View#setClipToOutline(boolean) View Outline clipping}.
     * <p>
     * Note that the animation returned here is a one-shot animation. It cannot
     * be re-used, and once started it cannot be paused or resumed.
     *
     * @param view The View will be clipped to the animating circle.
     * @param centerX The x coordinate of the center of the animating circle.
     * @param centerY The y coordinate of the center of the animating circle.
     * @param startRadius The starting radius of the animating circle.
     * @param endRadius The ending radius of the animating circle.
     */
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static SupportAnimator createCircularReveal(View view, int centerX, int centerY, float startRadius, float endRadius) {
    if (!(view.getParent() instanceof RevealAnimator)) {
        throw new IllegalArgumentException("View must be inside RevealFrameLayout or RevealLinearLayout.");
    }
    RevealAnimator revealLayout = (RevealAnimator) view.getParent();
    revealLayout.attachRevealInfo(new RevealInfo(centerX, centerY, startRadius, endRadius, new WeakReference<>(view)));
    if (LOLLIPOP_PLUS) {
        return new SupportAnimatorLollipop(android.view.ViewAnimationUtils.createCircularReveal(view, centerX, centerY, startRadius, endRadius), revealLayout);
    }
    ObjectAnimator reveal = ObjectAnimator.ofFloat(revealLayout, CLIP_RADIUS, startRadius, endRadius);
    reveal.addListener(getRevealFinishListener(revealLayout));
    return new SupportAnimatorPreL(reveal, revealLayout);
}
Also used : ObjectAnimator(com.nineoldandroids.animation.ObjectAnimator) WeakReference(java.lang.ref.WeakReference) RevealInfo(org.aisen.weibo.sina.ui.widget.io.codetail.animation.RevealAnimator.RevealInfo) TargetApi(android.annotation.TargetApi)

Aggregations

TargetApi (android.annotation.TargetApi)1 ObjectAnimator (com.nineoldandroids.animation.ObjectAnimator)1 WeakReference (java.lang.ref.WeakReference)1 RevealInfo (org.aisen.weibo.sina.ui.widget.io.codetail.animation.RevealAnimator.RevealInfo)1