library/src/main/java/com/podcopic/animationlib/library/attention/ShakeBand.java
public class ShakeBand extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "translationX", 0, 25, -25, 25, -25,15, -15, 6, -6, 0),
                ObjectAnimator.ofFloat(target, "scaleX", 1, 1.25f, 0.75f, 1.15f, 1),
                ObjectAnimator.ofFloat(target, "scaleY", 1, 0.75f, 1.25f, 0.85f, 1),
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/rotation_in/RotateInUpRight.java
public class RotateInUpRight extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        float x = target.getWidth() - target.getPaddingRight();
        float y = target.getHeight() - target.getPaddingBottom();
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "rotation", -90, 0),
                ObjectAnimator.ofFloat(target, "alpha", startingAlpha, 1),
                ObjectAnimator.ofFloat(target, "pivotX", x, x),
                ObjectAnimator.ofFloat(target, "pivotY", y, y)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/special/RollOut.java
public class RollOut extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        int distance = (int) mSlideLength;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"alpha",1,startingAlpha),
                ObjectAnimator.ofFloat(target,"translationX",0, distance),
                ObjectAnimator.ofFloat(target,"rotation",0,120)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/fading_out/FadingOut.java
public class FadingOut extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"alpha",1,0),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/attention/RubberBand.java
public class RubberBand extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "scaleX", 1, 1.25f, 0.75f, 1.15f, 1),
                ObjectAnimator.ofFloat(target, "scaleY", 1, 0.75f, 1.25f, 0.85f, 1),
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }

}
library/src/main/java/com/podcopic/animationlib/library/fading_out/FadingOutLeft.java
public class FadingOutLeft extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;

        int distance = (int) mSlideLength;
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"alpha",1,0),
                ObjectAnimator.ofFloat(target,"translationX",0,-distance),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/fading_out/FadingOutRight.java
public class FadingOutRight extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;

        int distance = (int) mSlideLength;
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", 1, 0),
                ObjectAnimator.ofFloat(target,"translationX",0,distance),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/Flips/FlipOutXaxis.java
public class FlipOutXaxis extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "rotationX", 0, 90),
                ObjectAnimator.ofFloat(target, "alpha", 1, startingAlpha),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/rotation_out/RotateOut.java
public class RotateOut extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"alpha",1,0),
                ObjectAnimator.ofFloat(target,"rotation",0,200),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/zoom_out/ZoomOutUp.java
public class ZoomOutUp extends BaseViewAnimator {
    @Override
    protected void prepare(View target) {
        int distance = (int) mSlideLength;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 1;
        }
        else {
            startingAlpha = 0;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", 1,startingAlpha),
                ObjectAnimator.ofFloat(target,"scaleX",1,0.475f,0.1f,0),
                ObjectAnimator.ofFloat(target,"scaleY",1,0.475f,0.1f,0),
                ObjectAnimator.ofFloat(target,"translationY",0,60,-distance)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/zoom_in/ZoomInRight.java
public class ZoomInRight extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        int distance = (int) mSlideLength;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"scaleX", 0.1f, 0.475f, 1),
                ObjectAnimator.ofFloat(target,"scaleY",0.1f,0.475f,1),
                ObjectAnimator.ofFloat(target,"translationX",distance,-48,0),
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1,1)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/rotation_out/RotateOutUpLeft.java
public class RotateOutUpLeft extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        float x = target.getPaddingLeft();
        float y = target.getHeight() - target.getPaddingBottom();
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", 1, 0),
                ObjectAnimator.ofFloat(target,"rotation",0,-90),
                ObjectAnimator.ofFloat(target,"pivotX",x,x),
                ObjectAnimator.ofFloat(target,"pivotY",y,y)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/attention/Standup.java
public class Standup extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        float x = (target.getWidth() - target.getPaddingLeft() - target.getPaddingRight())/2
                + target.getPaddingLeft();
        float y = target.getHeight() - target.getPaddingBottom();
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"pivotX",x,x,x,x,x),
                ObjectAnimator.ofFloat(target,"pivotY",y,y,y,y,y),
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1),
                ObjectAnimator.ofFloat(target,"rotationX",55,-30,15,-15,0)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/rotation_in/RotateInUpLeft.java
public class RotateInUpLeft extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        float x = target.getPaddingLeft();
        float y = target.getHeight() - target.getPaddingBottom();
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "rotation", 90, 0),
                ObjectAnimator.ofFloat(target, "alpha",startingAlpha , 1),
                ObjectAnimator.ofFloat(target, "pivotX", x, x),
                ObjectAnimator.ofFloat(target, "pivotY", y, y)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/sliders/SlideOutRight.java
public class SlideOutRight extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        int distance = (int) mSlideLength;
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", 1, startingAlpha),
                ObjectAnimator.ofFloat(target,"translationX",0,distance),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/fading_in/FadingInLeft.java
public class FadingInLeft extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;

        int distance = (int) mSlideLength;
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", 0, 1),
                ObjectAnimator.ofFloat(target, "translationX", -distance, 0),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/rotation_out/RotateOutDownLeft.java
public class RotateOutDownLeft extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        float x = target.getPaddingLeft();
        float y = target.getHeight() - target.getPaddingBottom();
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", 1, 0),
                ObjectAnimator.ofFloat(target,"rotation",0,90),
                ObjectAnimator.ofFloat(target,"pivotX",x,x),
                ObjectAnimator.ofFloat(target,"pivotY",y,y)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/Flips/FlipInXaxis.java
public class FlipInXaxis extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "rotationX", 90, -15, 15, 0),
                ObjectAnimator.ofFloat(target, "alpha", startingAlpha, 1),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );

    }

}
library/src/main/java/com/podcopic/animationlib/library/zoom_in/ZoomIn.java
public class ZoomIn extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"scaleX",0.45f,1),
                ObjectAnimator.ofFloat(target,"scaleY",0.45f,1),
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/zoom_out/ZoomOutLeft.java
public class ZoomOutLeft extends BaseViewAnimator {
    @Override
    protected void prepare(View target) {
        int distance = (int) mSlideLength;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 1;
        }
        else {
            startingAlpha = 0;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha",1,startingAlpha),
                ObjectAnimator.ofFloat(target,"scaleX",1,0.475f,0.1f),
                ObjectAnimator.ofFloat(target,"scaleY",1,0.475f,0.1f),
                ObjectAnimator.ofFloat(target,"translationX",0,42,-distance)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/sliders/SlideOutUp.java
public class SlideOutUp extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        int distance = (int) mSlideLength;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", 1, startingAlpha),
                ObjectAnimator.ofFloat(target,"translationY",0,-distance),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/bouncing_in/BounceInDown.java
public class BounceInDown extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        int distance = (int) mSlideLength;
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", startingAlpha, 1, 1, 1),
                ObjectAnimator.ofFloat(target,"translationY",-distance,30,-10,0),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)

        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/fading_in/FadingInRight.java
public class FadingInRight extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;

        int distance = (int) mSlideLength;
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", 0, 1),
                ObjectAnimator.ofFloat(target, "translationX", distance, 0),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/bouncing_in/BounceInUp.java
public class BounceInUp extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        int distance = (int) mSlideLength;
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"translationY",distance, -30,10,0),
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1,1,1),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }

}
library/src/main/java/com/podcopic/animationlib/library/sliders/SlideInUp.java
public class SlideInUp extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        int distance = (int) mSlideLength;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", startingAlpha, 1),
                ObjectAnimator.ofFloat(target,"translationY",distance,0),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/zoom_in/ZoomInDown.java
public class ZoomInDown extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        int distance = (int) mSlideLength;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"scaleX",0.1f,0.475f,1),
                ObjectAnimator.ofFloat(target,"scaleY",0.1f,0.475f,1),
                ObjectAnimator.ofFloat(target,"translationY",-distance,60,0),
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1,1)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/attention/Shake.java
public class Shake extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "translationX", 0, 25, -25, 25, -25,15, -15, 6, -6, 0),
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/bouncing_in/BounceIn.java
public class BounceIn extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1, 1 ,1),
                ObjectAnimator.ofFloat(target,"scaleX",0.3f,1.05f,0.9f,1),
                ObjectAnimator.ofFloat(target,"scaleY",0.3f,1.05f,0.9f,1),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/fading_in/FadingInUp.java
public class FadingInUp extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;

        int distance = (int) mSlideLength;
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", 0, 1),
                ObjectAnimator.ofFloat(target, "translationY",distance , 0),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/rotation_out/RotateOutDownRight.java
public class RotateOutDownRight extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        float x = target.getWidth() - target.getPaddingRight();
        float y = target.getHeight() - target.getPaddingBottom();
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", 1, 0),
                ObjectAnimator.ofFloat(target,"rotation",0,-90),
                ObjectAnimator.ofFloat(target,"pivotX",x,x),
                ObjectAnimator.ofFloat(target,"pivotY",y,y)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/special/RollIn.java
public class RollIn extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        int distance = (int) mSlideLength;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1),
                ObjectAnimator.ofFloat(target,"translationX",-distance,0),
                ObjectAnimator.ofFloat(target,"rotation",-120,0)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/fading_out/FadingOutDown.java
public class FadingOutDown extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;

        int distance = (int) mSlideLength;
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"alpha",1,0),
                ObjectAnimator.ofFloat(target,"translationY",0,distance),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/bouncing_in/BounceInLeft.java
public class BounceInLeft extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        int distance = (int) mSlideLength;
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"translationX",-distance,30,-10,0),
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1,1,1),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/zoom_in/ZoomInRubberBand.java
public class ZoomInRubberBand extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(

                ObjectAnimator.ofFloat(target, "scaleX", .2f, .5f, .75f, 0.5f, 1.15f, 1),
                ObjectAnimator.ofFloat(target, "scaleY", .2f, .5f, 0.25f, 1.0f, 0.85f, 1),
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/attention/Tada.java
public class Tada extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }


        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"scaleX",1,0.9f,0.9f,1.1f,1.1f,1.1f,1.1f,1.1f,1.1f,1),
                ObjectAnimator.ofFloat(target,"scaleY",1,0.9f,0.9f,1.1f,1.1f,1.1f,1.1f,1.1f,1.1f,1),
                ObjectAnimator.ofFloat(target,"rotation",0 ,-3 , -3, 3, -3, 3, -3,3,-3,0),
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/bouncing_in/BounceInRight.java
public class BounceInRight extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        int distance = (int) mSlideLength;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"translationX",distance,-30,10,0),
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1,1,1),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/special/in/Landing.java
public class Landing extends BaseViewAnimator {
    @Override
    protected void prepare(View target) {
        getAnimatorAgent().playTogether(
                Glider.glide(Skill.QuintEaseOut, getDuration(), ObjectAnimator.ofFloat(target, "scaleX", 1.5f, 1f)),
                Glider.glide(Skill.QuintEaseOut, getDuration(), ObjectAnimator.ofFloat(target, "scaleY", 1.5f, 1f)),
                Glider.glide(Skill.QuintEaseOut, getDuration(), ObjectAnimator.ofFloat(target, "alpha", 0, 1f))
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/zoom_out/ZoomOut.java
public class ZoomOut extends BaseViewAnimator {
    @Override
    protected void prepare(View target) {
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 1;
        }
        else {
            startingAlpha = 0;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"alpha",1,startingAlpha),
                ObjectAnimator.ofFloat(target,"scaleX",1,0.3f,0),
                ObjectAnimator.ofFloat(target,"scaleY",1,0.3f,0)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/special/Hinge.java
public class Hinge extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        float x = target.getPaddingLeft();
        float y = target.getPaddingTop();
        getAnimatorAgent().playTogether(
                Glider.glide(Skill.SineEaseInOut, 1300, ObjectAnimator.ofFloat(target, "rotation", 0, 80, 60, 80, 60, 60)),
                ObjectAnimator.ofFloat(target, "translationY", 0, 0, 0, 0, 0, 700),
                ObjectAnimator.ofFloat(target, "alpha", 1, 1, 1, 1, 1, 0),
                ObjectAnimator.ofFloat(target, "pivotX", x, x, x, x, x, x),
                ObjectAnimator.ofFloat(target, "pivotY", y, y, y, y, y, y)
        );

        setDuration(1300);
    }
}
library/src/main/java/com/podcopic/animationlib/library/attention/Flash.java
public class Flash extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"alpha",1,0,1,0,1),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)

        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/sliders/SlideInRight.java
public class SlideInRight extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        int distance = (int) mSlideLength;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", startingAlpha, 1),
                ObjectAnimator.ofFloat(target,"translationX",distance,0),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/fading_in/FadingInDown.java
public class FadingInDown extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;

        int distance = (int) mSlideLength;
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", 0, 1),
                ObjectAnimator.ofFloat(target, "translationY", -distance, 0),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/rotation_out/RotateOutUpRight.java
public class RotateOutUpRight extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        float x = target.getWidth() - target.getPaddingRight();
        float y = target.getHeight() - target.getPaddingBottom();
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", 1, 0),
                ObjectAnimator.ofFloat(target,"rotation",0,90),
                ObjectAnimator.ofFloat(target,"pivotX",x,x),
                ObjectAnimator.ofFloat(target,"pivotY",y,y)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/zoom_in/ZoomInLeft.java
public class ZoomInLeft extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        int distance = (int) mSlideLength;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "scaleX", 0.1f, 0.475f, 1),
                ObjectAnimator.ofFloat(target,"scaleY",0.1f,0.475f,1),
                ObjectAnimator.ofFloat(target,"translationX",-distance,48,0),
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1,1)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/zoom_in/ZoomInUp.java
public class ZoomInUp extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        ViewGroup parent = (ViewGroup)target.getParent();
        int distance = (int) mSlideLength;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1,1),
                ObjectAnimator.ofFloat(target,"scaleX",0.1f,0.475f,1),
                ObjectAnimator.ofFloat(target,"scaleY",0.1f,0.475f,1),
                ObjectAnimator.ofFloat(target,"translationY",distance,-60,0)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/Flips/FlipInYaxis.java
public class FlipInYaxis extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "rotationY", 90, -15, 15, 0),
                ObjectAnimator.ofFloat(target, "alpha", startingAlpha, 1),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)

        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/fading_out/FadingOutUp.java
public class FadingOutUp extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;

        int distance = (int) mSlideLength;
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", 1, 0),
                ObjectAnimator.ofFloat(target,"translationY",0,-distance),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/zoom_out/ZoomOutDown.java
public class ZoomOutDown extends BaseViewAnimator {
    @Override
    protected void prepare(View target) {
        int distance = (int) mSlideLength;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 1;
        }
        else {
            startingAlpha = 0;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha",1,startingAlpha),
                ObjectAnimator.ofFloat(target,"scaleX",1,0.475f,0.1f),
                ObjectAnimator.ofFloat(target,"scaleY",1,0.475f,0.1f),
                ObjectAnimator.ofFloat(target,"translationY",0,-60,distance)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/Flips/FlipOutYaxis.java
public class FlipOutYaxis extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "rotationY", 0, 90),
                ObjectAnimator.ofFloat(target, "alpha", 1, startingAlpha),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)


        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/attention/Wobble.java
public class Wobble extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        float width = target.getWidth();
        float one = (float)(width/100.0);
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "translationX", 0 * one, -25 * one, 20 * one, -15 * one, 10 * one, -5 * one, 0 * one,0),
                ObjectAnimator.ofFloat(target, "rotation", 0, -5, 3, -3, 2, -1,0),
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)

        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/sliders/SlideOutDown.java
public class SlideOutDown extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        int distance = (int) mSlideLength;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", 1, startingAlpha),
                ObjectAnimator.ofFloat(target,"translationY",0,distance),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/attention/Wave.java
public class Wave extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }


        float x = (target.getWidth() - target.getPaddingLeft() - target.getPaddingRight())/2
                + target.getPaddingLeft();
        float y = target.getHeight() - target.getPaddingBottom();
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "rotation", 12,-12,3,-3,0),
                ObjectAnimator.ofFloat(target, "pivotX", x, x,x,x,x),
                ObjectAnimator.ofFloat(target, "pivotY", y, y,y,y,y),
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/sliders/SlideInLeft.java
public class SlideInLeft extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        int distance = (int) mSlideLength;
        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", startingAlpha, 1),
                ObjectAnimator.ofFloat(target,"translationX",-distance,0),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/fading_in/FadingIn.java
public class FadingIn extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"alpha",0,1),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)

        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/attention/Swing.java
public class Swing extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "rotation", 0, 10, -10, 6, -6, 3, -3, 0),
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/zoom_out/ZoomOutRight.java
public class ZoomOutRight extends BaseViewAnimator {
    @Override
    protected void prepare(View target) {
        ViewGroup parent = (ViewGroup)target.getParent();
        int distance = (int) mSlideLength;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 1;
        }
        else {
            startingAlpha = 0;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"alpha", 1,startingAlpha),
                ObjectAnimator.ofFloat(target,"scaleX",1,0.475f,0.1f),
                ObjectAnimator.ofFloat(target,"scaleY",1,0.475f,0.1f),
                ObjectAnimator.ofFloat(target,"translationX",0,-42,distance)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/sliders/SlideOutLeft.java
public class SlideOutLeft extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        int distance = (int) mSlideLength;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", 1, startingAlpha),
                ObjectAnimator.ofFloat(target,"translationX",0,-distance),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/rotation_in/RotateInDownLeft.java
public class RotateInDownLeft extends BaseViewAnimator {
    @Override
    public void prepare(View target) {
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        float x = target.getPaddingLeft();
        float y = target.getHeight() - target.getPaddingBottom();
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "rotation", -90, 0),
                ObjectAnimator.ofFloat(target, "alpha", startingAlpha, 1),
                ObjectAnimator.ofFloat(target, "pivotX", x, x),
                ObjectAnimator.ofFloat(target, "pivotY", y, y)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/attention/Pulse.java
public class Pulse extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "scaleY", 1, 1.1f, 1),
                ObjectAnimator.ofFloat(target, "scaleX", 1, 1.1f, 1),
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/rotation_in/RotateInDownRight.java
public class RotateInDownRight extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        float x = target.getWidth() - target.getPaddingRight();
        float y = target.getHeight() - target.getPaddingBottom();
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "rotation", 90, 0),
                ObjectAnimator.ofFloat(target, "alpha", startingAlpha, 1),
                ObjectAnimator.ofFloat(target, "pivotX", x, x),
                ObjectAnimator.ofFloat(target, "pivotY", y, y)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/special/in/DropOut.java
public class DropOut extends BaseViewAnimator {
    @Override
    protected void prepare(View target) {
        int distance = (int) mSlideLength;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "alpha", startingAlpha, 1),
                Glider.glide(Skill.BounceEaseOut, getDuration(), ObjectAnimator.ofFloat(target, "translationY", -distance, 0))
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/sliders/SlideInDown.java
public class SlideInDown extends BaseViewAnimator {

    //int distance = (int) mSlideLength;
    @Override
    public void prepare(View target) {
        int distance = (int) mSlideLength;
        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        Log.d("animationtest",""+distance+" "+target.getHeight()+" "+target.getTop());
        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1),
                ObjectAnimator.ofFloat(target,"translationY",-distance,0),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/rotation_in/RotateIn.java
public class RotateIn extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }

        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target, "rotation", -200, 0),
                ObjectAnimator.ofFloat(target, "alpha", startingAlpha, 1),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}
library/src/main/java/com/podcopic/animationlib/library/attention/Bounce.java
public class Bounce extends BaseViewAnimator {
    @Override
    public void prepare(View target) {

        final float horizontalCenter = mHorizontalCenter;
        final float verticalCenter = mVerticalCenter;
        final int startingAlpha;

        if(mAlpha){
            startingAlpha = 0;
        }
        else {
            startingAlpha = 1;
        }


        getAnimatorAgent().playTogether(
                ObjectAnimator.ofFloat(target,"translationY",0,0,-30,0,-15,0,0),
                ObjectAnimator.ofFloat(target,"alpha",startingAlpha,1),

                ObjectAnimator.ofFloat(target, "pivotX", horizontalCenter, horizontalCenter),
                ObjectAnimator.ofFloat(target, "pivotY", verticalCenter, verticalCenter)
        );
    }
}


Question: package com.podcopic.animationlib.library;
import com.podcopic.animationlib.library.special.in.DropOut;
import com.podcopic.animationlib.library.special.in.Landing;
import com.podcopic.animationlib.library.attention.Bounce;
import com.podcopic.animationlib.library.attention.Flash;
import com.podcopic.animationlib.library.attention.Pulse;
import com.podcopic.animationlib.library.attention.RubberBand;
import com.podcopic.animationlib.library.attention.Shake;
import com.podcopic.animationlib.library.attention.Standup;
import com.podcopic.animationlib.library.attention.Swing;
import com.podcopic.animationlib.library.attention.Tada;
import com.podcopic.animationlib.library.attention.Wave;
import com.podcopic.animationlib.library.attention.Wobble;
import com.podcopic.animationlib.library.attention.ShakeBand;
import com.podcopic.animationlib.library.bouncing_in.BounceIn;
import com.podcopic.animationlib.library.bouncing_in.BounceInDown;
import com.podcopic.animationlib.library.bouncing_in.BounceInLeft;
import com.podcopic.animationlib.library.bouncing_in.BounceInRight;
import com.podcopic.animationlib.library.bouncing_in.BounceInUp;
import com.podcopic.animationlib.library.fading_in.FadingIn;
import com.podcopic.animationlib.library.fading_in.FadingInDown;
import com.podcopic.animationlib.library.fading_in.FadingInLeft;
import com.podcopic.animationlib.library.fading_in.FadingInRight;
import com.podcopic.animationlib.library.fading_in.FadingInUp;
import com.podcopic.animationlib.library.fading_out.FadingOut;
import com.podcopic.animationlib.library.fading_out.FadingOutDown;
import com.podcopic.animationlib.library.fading_out.FadingOutLeft;
import com.podcopic.animationlib.library.fading_out.FadingOutRight;
import com.podcopic.animationlib.library.fading_out.FadingOutUp;
import com.podcopic.animationlib.library.Flips.FlipInXaxis;
import com.podcopic.animationlib.library.Flips.FlipInYaxis;
import com.podcopic.animationlib.library.Flips.FlipOutXaxis;
import com.podcopic.animationlib.library.Flips.FlipOutYaxis;
import com.podcopic.animationlib.library.rotation_in.RotateIn;
import com.podcopic.animationlib.library.rotation_in.RotateInDownLeft;
import com.podcopic.animationlib.library.rotation_in.RotateInDownRight;
import com.podcopic.animationlib.library.rotation_in.RotateInUpLeft;
import com.podcopic.animationlib.library.rotation_in.RotateInUpRight;
import com.podcopic.animationlib.library.rotation_out.RotateOut;
import com.podcopic.animationlib.library.rotation_out.RotateOutDownLeft;
import com.podcopic.animationlib.library.rotation_out.RotateOutDownRight;
import com.podcopic.animationlib.library.rotation_out.RotateOutUpLeft;
import com.podcopic.animationlib.library.rotation_out.RotateOutUpRight;
import com.podcopic.animationlib.library.sliders.SlideInDown;
import com.podcopic.animationlib.library.sliders.SlideInLeft;
import com.podcopic.animationlib.library.sliders.SlideInRight;
import com.podcopic.animationlib.library.sliders.SlideInUp;
import com.podcopic.animationlib.library.sliders.SlideOutDown;
import com.podcopic.animationlib.library.sliders.SlideOutLeft;
import com.podcopic.animationlib.library.sliders.SlideOutRight;
import com.podcopic.animationlib.library.sliders.SlideOutUp;
import com.podcopic.animationlib.library.zoom_in.ZoomIn;
import com.podcopic.animationlib.library.zoom_in.ZoomInRubberBand;
import com.podcopic.animationlib.library.zoom_in.ZoomInDown;
import com.podcopic.animationlib.library.zoom_in.ZoomInLeft;
import com.podcopic.animationlib.library.zoom_in.ZoomInRight;
import com.podcopic.animationlib.library.zoom_in.ZoomInUp;
import com.podcopic.animationlib.library.zoom_out.ZoomOut;
import com.podcopic.animationlib.library.zoom_out.ZoomOutDown;
import com.podcopic.animationlib.library.zoom_out.ZoomOutLeft;
import com.podcopic.animationlib.library.zoom_out.ZoomOutRight;
import com.podcopic.animationlib.library.zoom_out.ZoomOutUp;
import com.podcopic.animationlib.library.special.Hinge;
import com.podcopic.animationlib.library.special.RollIn;
import com.podcopic.animationlib.library.special.RollOut;


public enum AnimationType {

    ShakeBand(ShakeBand.class),
    DropOut(DropOut.class),
    Landing(Landing.class),

    Flash(Flash.class),
    Pulse(Pulse.class),
    RubberBand(RubberBand.class),
    Shake(Shake.class),
    Swing(Swing.class),
    Wobble(Wobble.class),
    Bounce(Bounce.class),
    Tada(Tada.class),
    StandUp(Standup.class),
    Wave(Wave.class),

    Hinge(Hinge.class),
    RollIn(RollIn.class),
    RollOut(RollOut.class),

    BounceIn(BounceIn.class),
    BounceInDown(BounceInDown.class),
    BounceInLeft(BounceInLeft.class),
    BounceInRight(BounceInRight.class),
    BounceInUp(BounceInUp.class),

    FadeIn(FadingIn.class),
    FadeInUp(FadingInUp.class),
    FadeInDown(FadingInDown.class),
    FadeInLeft(FadingInLeft.class),
    FadeInRight(FadingInRight.class),

    FadeOut(FadingOut.class),
    FadeOutDown(FadingOutDown.class),
    FadeOutLeft(FadingOutLeft.class),
    FadeOutRight(FadingOutRight.class),
    FadeOutUp(FadingOutUp.class),

    FlipInX(FlipInXaxis.class),
    FlipOutX(FlipOutXaxis.class),
    FlipInY(FlipInYaxis.class),
    FlipOutY(FlipOutYaxis.class),
    RotateIn(RotateIn.class),
    RotateInDownLeft(RotateInDownLeft.class),
Answer:     RotateInDownRight(RotateInDownRight.class),