炫酷的ViewPager翻页动画

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28779083/article/details/61414839

先看效果图

这里写图片描述

直接拿去就能用,和普通的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;
                }
            }
        });
    }
}

猜你喜欢

转载自blog.csdn.net/qq_28779083/article/details/61414839
今日推荐