package com.marshalchen.common.uimodule.slider.Animations; import android.view.View; import com.marshalchen.common.uimodule.R; import com.marshalchen.common.uimodule.nineoldandroids.animation.ObjectAnimator; import com.marshalchen.common.uimodule.nineoldandroids.animation.ValueAnimator; import com.marshalchen.common.uimodule.nineoldandroids.view.ViewHelper; /** * A demo class to show how to use {@link com.marshalchen.common.uimodule.slider.Animations.BaseAnimationInterface} * to make your custom animation in {@link com.marshalchen.common.uimodule.slider.Tricks.ViewPagerEx.PageTransformer} action. */ public class DescriptionAnimation implements BaseAnimationInterface { @Override public void onPrepareCurrentItemLeaveScreen(View current) { View descriptionLayout = current.findViewById(R.id.description_layout); if(descriptionLayout!=null){ current.findViewById(R.id.description_layout).setVisibility(View.INVISIBLE); } } /** * When next item is coming to show, let's hide the description layout. * @param next */ @Override public void onPrepareNextItemShowInScreen(View next) { View descriptionLayout = next.findViewById(R.id.description_layout); if(descriptionLayout!=null){ next.findViewById(R.id.description_layout).setVisibility(View.INVISIBLE); } } @Override public void onCurrentItemDisappear(View view) { } /** * When next item show in ViewPagerEx, let's make an animation to show the * description layout. * @param view */ @Override public void onNextItemAppear(View view) { View descriptionLayout = view.findViewById(R.id.description_layout); if(descriptionLayout!=null){ float layoutY = ViewHelper.getY(descriptionLayout); view.findViewById(R.id.description_layout).setVisibility(View.VISIBLE); ValueAnimator animator = ObjectAnimator.ofFloat( descriptionLayout,"y",layoutY + descriptionLayout.getHeight(), layoutY).setDuration(500); animator.start(); } } }