2

Ich brauche diese Animation in einer vertikalen ViewPager zu machen:Animation in einer vertikalen ViewPager

enter image description here

https://www.youtube.com/watch?v=wuE-4jjnp3g

das, was ich versuchte, so weit:

viewPager = (VerticalViewPager) rootView.findViewById(R.id.viewpager); 

    viewPager.setPageTransformer(false, new ViewPager.PageTransformer() { 
     @Override 
     public void transformPage(View page, float position) { 

      if (position >= 0.5F && position <= 1F) { 

       float progressStart = 0.5f; 
       float progressEnd = 1f; 
       float progressDelta = progressEnd - progressStart; 

       float progress = (position - progressStart)/progressDelta; 
       if(progress>1)progress=1; 
       if(progress<0)progress=0; 

       float endValue = 1f; 
       float startValue = 0.8f; 

       float delta = endValue - startValue; 

       progress = 1-progress; 
       float currentScale = startValue + delta*progress; 

       ViewCompat.setPivotY(page,0); 
       ViewCompat.setScaleX(page, currentScale); 
       ViewCompat.setScaleY(page, 0.9F); 
       ViewCompat.setTranslationY(page, 0); 

      } else { 
       ViewCompat.setScaleX(page, 1.0F); //- width 
       ViewCompat.setScaleY(page, 0.9F); //- height 
      } 

     } 
    }); 

ist dies die Ergebnis:

enter image description here

https://www.youtube.com/watch?v=G9W2lCKP-_s

ich eine Kopie des ursprünglichen ViewPager mit vertikaler Ausrichtung verwendet wird, um den Code zu sehen: https://github.com/Devlight/InfiniteCycleViewPager/blob/master/infinitecycleviewpager/src/main/java/com/gigamole/infinitecycleviewpager/VerticalViewPager.java

Offensichtlich ist es nicht einmal in der Nähe, ich brauche eine Vorschau auf die nächste Seite haben, und mache die zwei Seiten näher.

enter image description here

Bitte helfen

Danke.

+0

Was "VerticalViewPager" verwenden Sie? – RadekJ

+0

Hallo, bitte überprüfen Sie es hier: https://github.com/Devlight/InfiniteCycleViewPager/blob/master/infinitecycleviewpager/src/main/java/com/gigamole/infinitecycleviewpager/VerticalViewPager.java ist eine Kopie des ursprünglichen ViewPager mit vertikaler Ausrichtung –

Antwort

2

Ich brauche eine Vorschau auf die nächste Seite

Sie

 android:paddingBottom="200dp" 
     android:clipToPadding="false" 

zu Ihrem <com.gigamole.infinitecycleviewpager.VerticalViewPager in Layout

in Ihrem Java-Code es ausdrückte hinzuzufügen haben zu haben, können Sie natürlich sollten Sie in Ihrem Layout

zwicken startTranslation und startValue und
 viewPager.setPageTransformer(true, new ViewPager.PageTransformer() { 
     @Override 
     public void transformPage(View page, float position) { 
      ViewCompat.setPivotY(page,0); 
      ViewCompat.setPivotX(page,page.getWidth()/2); 
      float endTranslation = 0f; 
      float startTranslation = -400f; 
      float deltaTranslation = endTranslation - startTranslation; 

      float endScale = 1f; 
      float startScale = 0.8f; 
      float deltaScale = endScale - startScale; 

      float progressStart = 0.5f; 
      float progressEnd = 1f; 
      float progressDelta = progressEnd - progressStart; 

      float progress = (position - progressStart)/progressDelta; 
      if(progress>1)progress=1; 
      if(progress<0)progress=0; 

      progress = 1-progress; 

      float currentScale = startScale + deltaScale*progress; 
      ViewCompat.setScaleX(page, currentScale); 
      ViewCompat.setScaleY(page, currentScale); 

      float currentTranslation = startTranslation + deltaTranslation*progress; 
      ViewCompat.setTranslationY(page, currentTranslation); 
     } 
+0

es ist nicht wie die gewünschte Animation, die Hauptseite nicht über die nächste Seite –

+0

Ich aktualisierte meine Antwort – RadekJ

+0

oh, du bist näher, die nächste Seite immer noch nicht OK, bitte warten, ich werde ein Video hochladen –

Verwandte Themen