先看效果图
直接拿去就能用,和普通的ViewPager一样的用法。
public class ReaderViewPager extends ViewPager { public ReaderViewPager(Context context) { this(context, null); } public ReaderViewPager(Context context, AttributeSet attrs) { super(context, attrs); setReadEffect(); } @SuppressLint("ClickableViewAccessibility") public void setReadEffect() { setPageTransformer(true, new PageTransformer() { private float MIN_SCALE = 0.5f;//初始 @Override public void transformPage(View view, float position) { // TODO Auto-generated method stub int pageWidth = view.getWidth(); if (position <= 0) { view.setTranslationX(0); view.setScaleX(1); view.setScaleY(1); } else if (position <= 1) { // (0,1] float SCALE = 0.5f - position / 2; view.setScaleX(MIN_SCALE + SCALE); view.setScaleY(MIN_SCALE + SCALE); view.setAlpha(MIN_SCALE + SCALE); view.setTranslationX(pageWidth * -position); } else { view.setTranslationX(pageWidth); } } }); //默认预加载3 setOffscreenPageLimit(3); //屏蔽多点触摸 setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub if (event.getActionMasked() == MotionEvent.ACTION_POINTER_DOWN) { return true; } else { return false; } } }); } }