package se.slide.sgu.animations;
import android.annotation.SuppressLint;
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.view.Display;
import android.view.View;
import android.view.WindowManager;
public class ScaleFadePageTransformer implements ViewPager.PageTransformer {
private int mScreenXOffset;
public ScaleFadePageTransformer(Context context) {
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
mScreenXOffset = display.getWidth()/2;
}
@SuppressLint("NewApi")
@Override
public void transformPage(View page, float position) {
final float transformValue = Math.abs(Math.abs(position) - 1);
// apply fade effect
page.setAlpha(transformValue);
if (position > 0) {
// apply zoom effect only for pages to the right
page.setScaleX(transformValue);
page.setScaleY(transformValue);
page.setPivotX(0.5f);
final float translateValue = position * -mScreenXOffset;
if (translateValue > -mScreenXOffset) {
page.setTranslationX(translateValue);
} else {
page.setTranslationX(0);
}
}
}
}