Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@JMPergar
Last active November 7, 2019 05:33
Show Gist options
  • Star 19 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
  • Save JMPergar/6eb76173a5f7941fcc6f to your computer and use it in GitHub Desktop.
Save JMPergar/6eb76173a5f7941fcc6f to your computer and use it in GitHub Desktop.
Flip animation for ViewPager
import android.support.v4.view.ViewPager;
import android.view.View;
public class FlipPageViewTransformer implements ViewPager.PageTransformer {
@Override
public void transformPage(View page, float position) {
float percentage = 1 - Math.abs(position);
page.setCameraDistance(12000);
setVisibility(page, position);
setTranslation(page);
setSize(page, position, percentage);
setRotation(page, position, percentage);
}
private void setVisibility(View page, float position) {
if (position < 0.5 && position > -0.5) {
page.setVisibility(View.VISIBLE);
} else {
page.setVisibility(View.INVISIBLE);
}
}
private void setTranslation(View page) {
ViewPager viewPager = (ViewPager) page.getParent();
int scroll = viewPager.getScrollX() - page.getLeft();
page.setTranslationX(scroll);
}
private void setSize(View page, float position, float percentage) {
page.setScaleX((position != 0 && position != 1) ? percentage : 1);
page.setScaleY((position != 0 && position != 1) ? percentage : 1);
}
private void setRotation(View page, float position, float percentage) {
if (position > 0) {
page.setRotationY(-180 * (percentage + 1));
} else {
page.setRotationY(180 * (percentage + 1));
}
}
}
@codernik
Copy link

How to use this bro?

@Rajeshr34
Copy link

viewPager.setPageTransformer(false, new FlipPageViewTransformer());

@praveenpayasi
Copy link

How to move from one fragment to other automatically....means I want to call this transformation inside fragment?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment