Skip to content

Instantly share code, notes, and snippets.

@shau-lok
Created March 24, 2016 06:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shau-lok/18d99766aae1f58b20ba to your computer and use it in GitHub Desktop.
Save shau-lok/18d99766aae1f58b20ba to your computer and use it in GitHub Desktop.
viewpager pageTransformer
public class ZoomOutPageTransformer implements ViewPager.PageTransformer {
private static final float MIN_SCALE = 0.85f;
private static final float MIN_ALPHA = 0.5f;
@Override
public void transformPage(View page, float position) {
int pageWidth = page.getWidth();
int pageHeight = page.getHeight();
if (position < -1) {
//off screen to the left
page.setAlpha(0);
} else if (position <= 1) {
float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position));
float vertMargin = pageHeight * (1 - scaleFactor) / 2;
float horzMargin = pageWidth * (1 - scaleFactor) / 2;
// if (position < 0) {
// page.setTranslationX(horzMargin - vertMargin / 2);
// } else {
// page.setTranslationX(-horzMargin + vertMargin / 2);
// }
page.setScaleX(scaleFactor);
page.setScaleY(scaleFactor);
page.setAlpha(MIN_ALPHA+ (scaleFactor- MIN_SCALE) / (1-MIN_SCALE)*(1-MIN_ALPHA));
}else{
page.setAlpha(0);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment