版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
}
}
});
}
}