在ViewPager中實現頁面切換動畫可以通過自定義PageTransformer來實現。以下是一個簡單的示例代碼:
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) { // 頁面不可見時
view.setAlpha(0);
} else if (position <= 0) { // 頁面從中心頁滑向左側頁
view.setAlpha(1);
view.setTranslationX(0);
view.setScaleX(1);
view.setScaleY(1);
} else if (position <= 1) { // 頁面從中心頁滑向右側頁
view.setAlpha(1 - position);
view.setTranslationX(pageWidth * -position);
float scaleFactor = MIN_SCALE + (1 - MIN_SCALE) * (1 - Math.abs(position));
view.setScaleX(scaleFactor);
view.setScaleY(scaleFactor);
} else { // 頁面不可見時
view.setAlpha(0);
}
}
}
然后在ViewPager中設置這個PageTransformer:
ViewPager viewPager = findViewById(R.id.viewPager);
viewPager.setPageTransformer(true, new DepthPageTransformer());
這樣就可以在ViewPager中實現頁面切換動畫了。您可以根據需要自定義不同的PageTransformer來實現不同效果的頁面切換動畫。