2016-08-03 128 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