利用PageTransformer实现ViewPager3D翻转
mDensity = getResources().getDisplayMetrics().density;
mViewPager.setOffscreenPageLimit(2);//缓存两页,此处必须设置
mViewPager.setPageTransformer(true,newFlipPagerTransformer());//设置3D翻转 效果
mViewPager.setAdapter(mMainPagerAdapter);
实现PageTransformer接口:
private class FlipPagerTransformer implements ViewPager.PageTransformer{
@Override
public void transformPage(View page, float position) {
if(position <= 0 && position >= -1){
page.setPivotX(page.getMeasuredWidth());
}else if(position <= 1 && position >= -1){
page.setPivotX(0);
}
page.setPivotY(page.getMeasuredHeight() * 0.5f);
if(mDensity <= 1.5f){
page.setRotationY(position * 90f);
}else if(1.5f < mDensity && mDensity <= 2.0f){
page.setRotationY(position * 75f);
}else if(2.0f < mDensity){
page.setRotationY(position * 60f);
}
}
}