2016-08-03 126 views
0

enter image description hereAndroid - 自定义ViewPager动画

这就是我必须实现的。我已经有一个垂直viewpager,但我缺乏转换的经验,我不知道如何做到这一点...

要显示的下一张卡的顶部部分预览显示卡当前显示。当下一张卡片被触摸并拖动到顶部时,动画开始,下一张卡片在同一时间滑动,同时当前卡片被缩小,然后向上滑动一点,以便在转换后显示顶部。

我将非常感谢您的帮助,因为它是一个时间敏感的问题

+0

你能告诉我,垂直viewpager的库或垂直viewpager的源代码? – nshmura

+0

https://github.com/kaelaela/VerticalViewPager – Anonymous

回答

1

请问下面的代码按照你的要求?

让你原来的变压器:

public class SlideUpTransformer implements ViewPager.PageTransformer { 

    @Override 
    public void transformPage(View view, float position) { 
     int pageWidth = view.getWidth(); 
     int pageHeight = view.getHeight(); 

     if (-1 < position && position < 0) { 
      float scaleFactor = 1 - Math.abs(position) * 0.1f; 
      float verticalMargin = pageHeight * (1 - scaleFactor)/2; 
      float horizontalMargin = pageWidth * (1 - scaleFactor)/2; 
      if (position < 0) { 
       view.setTranslationX(horizontalMargin - verticalMargin/2); 
      } else { 
       view.setTranslationX(-horizontalMargin + verticalMargin/2); 
      } 
      view.setScaleX(scaleFactor); 
      view.setScaleY(scaleFactor); 
     } 

     view.setTranslationX(view.getWidth() * -position); 

     if (position > 0) { 
      float yPosition = position * view.getHeight(); 
      view.setTranslationY(yPosition); 
     } 
    } 
} 

使用这样的:

viewPager.setPageTransformer(false, new SlideUpTransformer()); 

这是这样的:

enter image description here

+0

谢谢你,你真快!它几乎做我想要的。我相信稍微调整一下,我会得到我想要的确切结果。 – Anonymous