http://developer.android.com/training/animation/screen-slide.html兩種動畫源碼
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);
????????}
????}
}第二種:ZoomOutPageTransformer.Java
public?class?ZoomOutPageTransformer?implements?ViewPager.PageTransformer?{
????private?static?final?float?MIN_SCALE?=?0.85f;
????private?static?final?float?MIN_ALPHA?=?0.5f;
????public?void?transformPage(View?view,?float?position)?{
????????int?pageWidth?=?view.getWidth();
????????int?pageHeight?=?view.getHeight();
????????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);
????????}
????}
}