2017-04-21 97 views
0

我在视图寻呼机中使用垂直滑动。我正在使用变形动画。但是当我垂直滑动动画发生水平。任何一个可以告诉我的错误在此代码Viewpager Transform动画为垂直滑动

public class DepthPageTransformer implements ViewPager.PageTransformer { 
private static final float MIN_SCALE = 0.75f; 

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

    if (position < -1) { // [-Infinity,-1) 
     // This page is way off-screen to the left. 
     view.setAlpha(0); 

    } else if (position <= 0) { // [-1,0] 
     // Use the default slide transition when moving to the left page 
     view.setAlpha(1); 
     view.setTranslationX(0); 
     view.setScaleX(1); 
     view.setScaleY(1); 

    } else if (position <= 1) { // (0,1] 
     // Fade the page out. 
     view.setAlpha(1 - position); 

     // Counteract the default slide transition 
     view.setTranslationX(pageWidth * -position); 

     // Scale the page down (between MIN_SCALE and 1) 
     float scaleFactor = MIN_SCALE 
       + (1 - MIN_SCALE) * (1 - Math.abs(position)); 
     view.setScaleX(scaleFactor); 
     view.setScaleY(scaleFactor); 

    } else { // (1,+Infinity] 
     // This page is way off-screen to the right. 
     view.setAlpha(0); 
    } 
} 
} 

回答

1

使用此代码

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

     if (position < -1) { // [-Infinity,-1) 
      // This page is way off-screen to the left. 
      view.setAlpha(0); 

     } else if (position <= 0) { // [-1,0] 
      // Use the default slide transition when moving to the left page 
      view.setAlpha(1); 
      view.setTranslationX(view.getWidth() * -position); 

      //set Y position to swipe in from top 
      float yPosition = position * view.getHeight(); 
      view.setTranslationY(yPosition); 
      view.setScaleX(1); 
      view.setScaleY(1); 

     } else if (position <= 1) { // (0,1] 
      // Fade the page out. 
      view.setAlpha(1 - position); 

      // Counteract the default slide transition 
      view.setTranslationX(pageWidth * -position); 

      // Scale the page down (between MIN_SCALE and 1) 
      float scaleFactor = MIN_SCALE 
        + (1 - MIN_SCALE) * (1 - Math.abs(position)); 
      view.setScaleX(scaleFactor); 
      view.setScaleY(scaleFactor); 

     } else { // (1,+Infinity] 
      // This page is way off-screen to the right. 
      view.setAlpha(0); 
     } 
    } 

替换[-1,0]代码