1、DepthPageTransformer
import android.support.v4.view.ViewPager;
import android.view.View;
/**
* Created by Administrator on 2016/8/12.
*/
public class DepthPageTransformer implements ViewPager.PageTransformer{
private static final float MIN_SCALE=0.75f;
@Override
public void transformPage(View view, float position) {
int pageWidth = view.getWidth();
if (position<-1){
view.setAlpha(0);
}else if(position<=0){
view.setAlpha(1);
view.setTranslationX(0);
view.setScaleX(1);
view.setScaleY(1);
}else if (position<=1){
view.setAlpha(1-position);
view.setTranslationX(pageWidth*-position);
float scaleFactor=MIN_SCALE+(1-MIN_SCALE)*(1-Math.abs(position));
view.setScaleY(scaleFactor);
view.setScaleY(scaleFactor);
}else{
view.setAlpha(0);
}
}
}
2、RotateDownPageTransformer
import android.support.v4.view.ViewPager;
import android.view.View;
/**
* Created by Administrator on 2016/8/12.
*/
public class RotateDownPageTransformer implements ViewPager.PageTransformer {
private static final float ROT_MAX=20.0f;
private float mRot;
@Override
public void transformPage(View view, float position) {
if (position<-1){
view.setRotation(0);
}else if (position<=1){
// if (position<0){
// mRot=(ROT_MAX*position);
// view.setPivotX();
// view.setPivotX(view.getMeasuredWidth()*0.5f);
// view.setPivotY(view.getMeasuredHeight());
// view.setRotation(mRot);
// }else {
mRot=(ROT_MAX*position);
view.setPivotX(view.getMeasuredWidth()*0.5f);
view.setPivotY(view.getMeasuredHeight());
view.setRotation(mRot);
// }
}else{
view.setRotation(0);
}
}
}
3、ZoomOutPageTransformer
import android.support.v4.view.ViewPager;
import android.view.View;
/**
* Created by Administrator on 2016/8/12.
*/
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 view, float position) {
int pageWidth = view.getWidth();
int pageHeight = view.getHeight();
if (position<-1){
view.setAlpha(0);
}else if(position<=1){
float scaleFactor=Math.max(MIN_SCALE,1-Math.abs(position));
float vertMargin=pageHeight*(1-scaleFactor)/2;
float horzMargin=pageHeight*(1-scaleFactor)/2;
if (position<0){
view.setTranslationX(horzMargin-vertMargin/2);
}else {
view.setTranslationX(-horzMargin+vertMargin/2);
}
view.setScaleX(scaleFactor);
view.setScaleY(scaleFactor);
view.setAlpha(MIN_ALPHA+(scaleFactor-MIN_SCALE)/(1-MIN_SCALE)*(1-MIN_ALPHA));
}else {
view.setAlpha(0);
}
}
}