ViewPager页面切换效果

作者: Decade_Lin | 来源:发表于2018-06-07 23:30 被阅读21次

要想实现不同的ViewPager的切换效果便需要自己写一个类实现ViewPager.PageTransformer这个接口,并重写transformPAge这个方法:

transformPage方法有两个参数,第一个view当然就是应用动画的那个控件,第二个是一个float类型的值,不是我们平常见到的position位置,而是当前滑动状态的表示,相对于当前position的position。它有三个临界值-1 0 1,0代表当前屏幕显示的view的position,1代表当前view的下一个view所在的position,-1代表当前view的前一个view所在的position

image

左右滑动时position的变化情况:

@Overrde
public void transformPage(View view, float position){
    if(position < -1){//[负无穷,-1]页面在屏幕外的左边
      ...  
    }else if (position <= 0){
    //页面从屏幕外左边进入屏幕的过程
    //页面从屏幕往左移动的过程
      ... 
    }else if (position <= 1){
    //页面从屏幕右边进入屏幕的过程
    //页面从屏幕往右移动的过程
      ...  
    }else{//[1,正无穷]页面在屏幕外的右边
      ... 
    }
}

在transformPage中写完自己所需要的实现切换效果后,只需要加上下面一句代码就可以实现特殊的页面的切换效果了:

mViewPager.setPageTransformer(true, new MyPageTransformer());

在重写transformPage的方法的时候,用的比较多的方法主要是如下几个:

获取页面的宽度

view.getWidth();

改变页面透明度

view.setAlpha();

改变页面的大小

view.setScaleX();
view.setScaleY();

改变页面的水平位置

view.setTranslationX();

相关文章

网友评论

    本文标题:ViewPager页面切换效果

    本文链接:https://www.haomeiwen.com/subject/txwmsftx.html