Skip to content

AntiClock Spin Transformation

Dipanshu Kumar edited this page Mar 14, 2018 · 5 revisions

Hello guys here i will tell you how you can apply AntiClock Spin Transformation on Viewpager.

AntiClock

First you have to implement ViewPager.PageTransformer in your class then check for position value, if position < -1 or position > 1 then set Alpha to 0 otherwise for position <= 0 you code for page which is currently visible to you and for position <= 1 you code for the page which is going to be visible to you.

public class AntiClockSpinTransformation implements ViewPager.PageTransformer {
    @Override
    public void transformPage(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);

        }


    }
}

Now creating object of your transformation class

AntiClockSpinTransformation antiClockSpinTransformation = new AntiClockSpinTransformation();

After doing this you just set your transformation to view pager

ViewPager viewPager.setPageTransformer(true, antiClockSpinTransformation);