这样我们简单的使用说明的效果已经做好了。下面我们来一起看一下如何为我们的切换效果添加一些炫酷效果呢?
  首先我们想到的是谷歌有没有为我们封装这样的方法,答案是肯定的,大家可以访问谷歌Android API详细了解其中的机制(http://developer.android.com/training/animation/screen-slide.html )。接下来有我带领大家先使用一下为ViewPager添加动画效果的实现。
  调用的方法:
mViewPager.setPageTransformer(true, new DepthPageTransformer());
DepthPageTransformer.java:
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public class DepthPageTransformer implements ViewPager.PageTransformer {
private static final float MIN_SCALE = 0.75f;
@SuppressLint("NewApi")
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);
}
}
}
  对于这段代码代码大家直接把官网的拿过来可以了。好了到这里我们的切换效果已经实现了,大家可以测试一下了。
  是不是一些同学已经发现一个问题了,自己的为什么一点效果都没有,是的,这不是你写错的原因,这是因为我们的动画效果都是通过属性动画实现的,而属性动画又是Android3.0以后的版本才支持的,所以大家不为之困扰,换一个高版本的可以完美呈现了,当然如果你感觉这个效果还不算理想,官网还为我们提供了一个效果,大家同样的操作可以了。
  对于上面的提到的关于3.0以前版本不支持的问题,这里我为大家提供一个改进方法:
  我们对DepthPageTransformer.java进行优化:
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public class myDepthPageTransformer implements ViewPager.PageTransformer {
private static final float MIN_SCALE = 0.75f;
/*
* 使用ViewHelper替代系统提供的view
* (non-Javadoc)
* @see android.support.v4.view.ViewPager.PageTransformer
* #transformPage(android.view.View, float)
*/
@SuppressLint("NewApi")
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);
ViewHelper.setAlpha(view, 0);
} else if (position <= 0) { // [-1,0]
// Use the default slide transition when moving to the left page
//            view.setAlpha(1);
ViewHelper.setAlpha(view, 1);
//            view.setTranslationX(0);
ViewHelper.setTranslationX(view, 0);
//            view.setScaleX(1);
ViewHelper.setScaleX(view, 1);
//            view.setScaleY(1);
ViewHelper.setScaleY(view, 1);
} else if (position <= 1) { // (0,1]
// Fade the page out.
//            view.setAlpha(1 - position);
ViewHelper.setAlpha(view, 1 - position);
// Counteract the default slide transition
//            view.setTranslationX(pageWidth * -position);
ViewHelper.setTranslationX(view, 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);
ViewHelper.setScaleX(view, scaleFactor);
//            view.setScaleY(scaleFactor);
ViewHelper.setScaleY(view, scaleFactor);
} else { // (1,+Infinity]
// This page is way off-screen to the right.
//            view.setAlpha(0);
ViewHelper.setAlpha(view, 0);
}
}
}