Android开发Android知识积累

ViewPager页面切换效果

2018-06-07  本文已影响21人  Decade_Lin

要想实现不同的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();
上一篇 下一篇

猜你喜欢

热点阅读