新版的 android-support-v4.jar 針對 ViewPager 多了一個 interface 可以客製化切換頁面時的動畫.
可參考官方的網頁, 裡面有兩個例子.
http://developer.android.com/training/animation/screen-slide.html

解决方案 »

  1.   



    viewPager=(ViewPager)this.findViewById(R.id.viewPager);

    PageTransformer pageTransformer=new PageTransformer() {

    @Override
    public void transformPage(View arg0, float arg1) {
    arg0.setAnimation(AnimationUtils.loadAnimation(ViewPagerActivity.this, android.R.anim.slide_out_right));
    }
    };

    viewPager.setPageTransformer(true, pageTransformer);
      

  2.   

    还有官方的一段代码,你参考一下,改改能实现你的功能@SuppressLint("NewApi")
    public class ZoomOutPageTransformer implements ViewPager.PageTransformer {     
    private static final float MIN_SCALE = 0.85f;     
    private static final float MIN_ALPHA = 0.5f;     
    @SuppressLint("NewApi")
    public void transformPage(View view, float position) 
    {        
    int pageWidth = view.getWidth();        
    int pageHeight = view.getHeight();   
    Log.d("dd",view.getTag()+"  pageWidth:"+pageWidth+"  pageHeight:"+pageHeight+" position:"+position);
    if (position < -1) { // [-Infinity,-1)             // This page is way off-screen to the left.             
    view.setAlpha(0);         
    } else if (position <= 1) { // [-1,1]             // Modify the default slide transition to shrink the page as well             
    float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position));            
    float vertMargin = pageHeight * (1 - scaleFactor) / 2;             
    float horzMargin = pageWidth * (1 - scaleFactor) / 2;            
    if (position < 0) {                
    view.setTranslationX(horzMargin - vertMargin / 2);           

    else {                
    view.setTranslationX(-horzMargin + vertMargin / 2);            
    }              // Scale the page down (between MIN_SCALE and 1)             
    view.setScaleX(scaleFactor);            
    view.setScaleY(scaleFactor);              // Fade the page relative to its size.             
    view.setAlpha(MIN_ALPHA +(scaleFactor - MIN_SCALE) / (1 - MIN_SCALE) * (1 - MIN_ALPHA));       
    } else { // (1,+Infinity]             // This page is way off-screen to the right.            
    view.setAlpha(0);        

    }
    }
      

  3.   

    注意楼上说的都是属性动画,在android 3.0后才能支持
      

  4.   

      pager.setPageTransformer(true, new ViewPagerTransformer());//设置滑动时的动画效果
      

  5.   

    public class ViewPagerTransformer implements ViewPager.PageTransformer {     
            private static final float MIN_SCALE = 0.85f;     
            private static final float MIN_ALPHA = 0.5f;     
            @SuppressLint("NewApi")
            public void transformPage(View view, float position) 
            {        
                int pageWidth = view.getWidth();        
                int pageHeight = view.getHeight();   
                Log.d("dd",view.getTag()+"  pageWidth:"+pageWidth+"  pageHeight:"+pageHeight+" position:"+position);
                if (position < -1) { // [-Infinity,-1)             // This page is way off-screen to the left.             
                    view.setAlpha(0);         
                } else if (position <= 1) { // [-1,1]             // Modify the default slide transition to shrink the page as well             
                    float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position));            
                    float vertMargin = pageHeight * (1 - scaleFactor) / 2;             
                    float horzMargin = pageWidth * (1 - scaleFactor) / 2;            
                    if (position < 0) {                
                        view.setTranslationX(horzMargin - vertMargin / 2);           
                    } 
                    else {                
                        view.setTranslationX(-horzMargin + vertMargin / 2);            
                    }              // Scale the page down (between MIN_SCALE and 1)             
                    view.setScaleX(scaleFactor);            
                    view.setScaleY(scaleFactor);              // Fade the page relative to its size.             
                    view.setAlpha(MIN_ALPHA +(scaleFactor - MIN_SCALE) / (1 - MIN_SCALE) * (1 - MIN_ALPHA));       
                } else { // (1,+Infinity]             // This page is way off-screen to the right.            
                    view.setAlpha(0);        
                } 
            }
        }