Animations Class

 package com.promatas.econsulto.animations;


import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.view.View;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.LayoutAnimationController;
import android.view.animation.LinearInterpolator;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;


import androidx.recyclerview.widget.RecyclerView;

import com.promatas.econsulto.R;



public class Animations {
final Animation bouncing, slidesideleft, zoomOut, zoomIn, slidesideRight, updown;
public static final int SIDE_LEFT=0;
public static final int SIDE_RIGHT=1;
public static final int IN=2;
public static final int OUT=3;


Context co;

public Animations(Context context)
{

co=context;

bouncing= AnimationUtils.loadAnimation(context, R.anim.anim_bounce);
slidesideleft= AnimationUtils.loadAnimation(context, R.anim.side_slide);
zoomOut= AnimationUtils.loadAnimation(context, R.anim.zoom_out);
zoomIn=AnimationUtils.loadAnimation(context, R.anim.zoom_in);
slidesideRight=AnimationUtils.loadAnimation(context, R.anim.side_slide_r);
updown = new TranslateAnimation(
TranslateAnimation.ABSOLUTE, 0f,
TranslateAnimation.ABSOLUTE, 0f,
TranslateAnimation.RELATIVE_TO_PARENT, 0f,
TranslateAnimation.RELATIVE_TO_PARENT, 1.0f);


}




// getting the Button from activity_main.xml file

public void applyBouncing(View view, long duration)
{
bouncing.setDuration(duration);
// start the animation
view.startAnimation(bouncing);

}

public void applyFallDown(RecyclerView recyclerView)
{
int resId = R.anim.layout_animation_fall_down;
LayoutAnimationController animation = AnimationUtils.loadLayoutAnimation(co, resId);
recyclerView.setLayoutAnimation(animation);
}
public void applyFallDown(RecyclerView recyclerView, float delay)
{
int resId = R.anim.layout_animation_fall_down;
LayoutAnimationController animation = AnimationUtils.loadLayoutAnimation(co, resId);
animation.setDelay(delay);
recyclerView.setLayoutAnimation(animation);
}

public void applySlide(View view, int side, long duration)
{
slidesideleft.setDuration(duration);
if(side==SIDE_LEFT)
view.startAnimation(slidesideleft);
if(side == SIDE_RIGHT)
view.startAnimation(slidesideRight);
}
public void applySlide(View view, int side, long duration, boolean loop)
{
if(loop)
{
slidesideleft.setRepeatMode(Animation.REVERSE);
slidesideleft.setRepeatCount(Animation.INFINITE);
slidesideleft.setDuration(duration);

slidesideRight.setRepeatMode(Animation.REVERSE);
slidesideRight.setRepeatCount(Animation.INFINITE);
slidesideRight.setDuration(duration);
if(side==SIDE_LEFT)
view.startAnimation(slidesideleft);
if(side == SIDE_RIGHT)
view.startAnimation(slidesideRight);
}
}


public void applyZoom(View view, int mode, long duration)
{
zoomIn.setDuration(duration);
zoomOut.setDuration(duration);
if(mode==OUT)
view.startAnimation(zoomOut);
if (mode==IN)
view.startAnimation(zoomIn);
}

public void applyUpDowm(View view, long duration)
{

updown.setDuration(duration);
updown.setRepeatMode(Animation.INFINITE);
updown.setInterpolator(new LinearInterpolator());
view.setAnimation(updown);
}
public void applyBlink(View view, long duration)
{

Animation anim = new AlphaAnimation(0.0f, 1.0f);
anim.setDuration(duration); //You can manage the blinking time with this parameter
// anim.setStartOffset(20);
// anim.setRepeatMode(Animation.REVERSE);
// anim.setRepeatCount(1);
view.startAnimation(anim);
}
public void applyFlip( ImageView imageView, int drawable){


final ObjectAnimator oa1 = ObjectAnimator.ofFloat(imageView, "scaleX", 1f, 0f);
final ObjectAnimator oa2 = ObjectAnimator.ofFloat(imageView, "scaleX", 0f, 1f);
oa1.setInterpolator(new DecelerateInterpolator());
oa2.setInterpolator(new AccelerateDecelerateInterpolator());
oa1.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
imageView.setImageResource(drawable);
oa2.setDuration(1000);
oa2.start();
}
});
oa1.start();
}

public void applyFade(View view, long duration, int type)
{

if(type==IN) {
view.animate()
.translationY(view.getHeight())
.alpha(1.0f)
.setDuration(duration)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
view.setVisibility(View.VISIBLE);
}
});
}
else
{
applySlide(view, SIDE_LEFT,300);
view.animate()
.translationY(view.getHeight())
.alpha(0.0f)
.setDuration(duration)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
view.setVisibility(View.GONE);
}
});
}
}
public static void FanTransformer(View page, float position)
{
page.setTranslationX(-position*page.getWidth());
page.setPivotX(0);
page.setPivotY(page.getHeight()/2);
page.setCameraDistance(20000);

if (position < -1){ // [-Infinity,-1)
// This page is way off-screen to the left.
page.setAlpha(0);

}
else if (position <= 0){ // [-1,0]
page.setAlpha(1);
page.setRotationY(-120*Math.abs(position));
}
else if (position <= 1){ // (0,1]
page.setAlpha(1);
page.setRotationY(120*Math.abs(position));

}
else { // (1,+Infinity]
// This page is way off-screen to the right.
page.setAlpha(0);

}
}
public static void transformerHinge(View page, float position) {
page.setTranslationX(-position*page.getWidth());
page.setPivotX(0);
page.setPivotY(0);


if (position < -1){ // [-Infinity,-1)
// This page is way off-screen to the left.
page.setAlpha(0);

}
else if (position <= 0){ // [-1,0]
page.setRotation(90*Math.abs(position));
page.setAlpha(1-Math.abs(position));

}
else if (position <= 1){ // (0,1]
page.setRotation(0);
page.setAlpha(1);

}
else { // (1,+Infinity]
// This page is way off-screen to the right.
page.setAlpha(0);

}
}
public static void transformerAntiClock(View page, float position) {

page.setTranslationX(-position * page.getWidth());

if (Math.abs(position) < 0.5){
page.setVisibility(View.VISIBLE);
page.setScaleX(1-Math.abs(position));
page.setScaleY(1-Math.abs(position));
}
else if (Math.abs(position) > 0.5){
page.setVisibility(View.GONE);
}

if (position < -1){ // [-Infinity,-1)
// This page is way off-screen to the left.
page.setAlpha(0);

}
else if (position <= 0){ // [-1,0]
page.setAlpha(1);
page.setRotation(360*(1-Math.abs(position)));

}
else if (position <= 1){ // (0,1]
page.setAlpha(1);
page.setRotation(-360*(1-Math.abs(position)));

}
else { // (1,+Infinity]
// This page is way off-screen to the right.
page.setAlpha(0);

}


}
public static void transformerCubeOut(View page, float position) {
if (position < -1) {
page.setAlpha(0);
} else if (position <= 0) {
page.setAlpha(1);
page.setPivotX(page.getWidth());
page.setRotation(-90 * Math.abs(position));
} else if (position <= 1) {
page.setAlpha(1);
page.setPivotX(0);
page.setRotationY(90 * Math.abs(position));
} else {
page.setAlpha(0);
}
}
public static void transformerGate(View page, float position)
{
page.setTranslationX(-position*page.getWidth());



if (position<-1){ // [-Infinity,-1)
// This page is way off-screen to the left.
page.setAlpha(0);

}
else if (position<=0){ // [-1,0]
page.setAlpha(1);
page.setPivotX(0);
page.setRotationY(90*Math.abs(position));

}
else if (position <=1){ // (0,1]
page.setAlpha(1);
page.setPivotX(page.getWidth());
page.setRotationY(-90*Math.abs(position));

}else { // (1,+Infinity]
// This page is way off-screen to the right.
page.setAlpha(0);

}
}

public void applyCollapsingExpanding(LinearLayout profLL, RecyclerView rv, View boundary) {

profLL.setOnClickListener(v -> {

if(rv.getVisibility()==View.VISIBLE)
{
rv.setVisibility(View.GONE);
boundary.setVisibility(View.GONE);
}
else
{
if(rv.getAdapter()!=null)
{
new Animations(co).applyFallDown(rv);
rv.setVisibility(View.VISIBLE);
boundary.setVisibility(View.VISIBLE);
}
else
Toast.makeText(co, "No Contents Added", Toast.LENGTH_SHORT).show();
}

});


}
}

Comments