利用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);
}
}
}
本文介绍如何使用PageTransformer为ViewPager实现3D翻转动画效果。通过设置pivot点及旋转角度,根据不同屏幕密度调整翻转角度,实现了流畅的3D翻转页面切换。
2163

被折叠的 条评论
为什么被折叠?



