页面转换器的ViewPager页面缩放问题

嗨,我正在开发一个应用程序,我正在使用viewpager使用viewpager变换器进行自定义动画,但问题是viewpager页面转换器存在缩放问题。我尝试了每个可能的x和y缩放,但问题仍然是相同的。 如果有人可以帮助我,我很难理解这个问题。 下面是我想要实现的形象

更新:看起来我还没有找到解决方案,但仍然试图想象,因为我几乎就在那里,刚刚离开了cardstack外观的设计。 我的预期产量 我的页面转换代码

public class CardStackTransformer implements ViewPager.PageTransformer { private static final float DEFAULT_CURRENT_PAGE_SCALE = 1.0f; private static final float OTHER_PAGE_SCALE = 0.9f; private int dimen; @Override public void transformPage(@NonNull View view, float position) { //view.setScaleX(DEFAULT_CURRENT_PAGE_SCALE); // view.setScaleY(DEFAULT_CURRENT_PAGE_SCALE); /*dimen = view.getWidth(); int pageWidth = view.getWidth(); final float translateValue = position * -pageWidth; if (translateValue < -pageWidth) { view.setTranslationX(translateValue); } if (position < -1) { view.setAlpha(0); } else if (position <= 0) { view.setAlpha(1.0f); view.setTranslationX(view.getWidth() * -position); view.setTranslationY(0); view.setScaleX(1); view.setScaleY(1); } else if (position <= 1) { view.setTranslationX(dimen * position); view.setAlpha(-0.5f * position + 1.0f); // view.setTranslationX((-dimen / 1.1F) * position); view.setTranslationX(view.getWidth() * -position); view.setTranslationY((dimen / 200.09f) * position); float scaleFactor = OTHER_PAGE_SCALE + (1 - OTHER_PAGE_SCALE) * (1 - Math.abs(position)); view.setScaleX(scaleFactor); view.setScaleY(scaleFactor); //view.setScaleX(OTHER_PAGE_SCALE); //view.setScaleY(OTHER_PAGE_SCALE); } else { view.setAlpha(0); }*/ view.setScaleX(DEFAULT_CURRENT_PAGE_SCALE); view.setScaleY(DEFAULT_CURRENT_PAGE_SCALE); dimen = view.getWidth(); if(position < -1) { view.setAlpha(0); } else if(position <= 0) { view.setAlpha(1.0f); view.setTranslationX(0); view.setTranslationY(0); view.setScaleX(DEFAULT_CURRENT_PAGE_SCALE); view.setScaleY(OTHER_PAGE_SCALE); } else if(position <= 1) { final float scaleFactor = OTHER_PAGE_SCALE + (1 - OTHER_PAGE_SCALE) * (1 - Math.abs(position)); // view.setTranslationX(dimen * -position); view.setAlpha(-0.5f * position + 1.0f); view.setTranslationX((-dimen / 1.1F) * position); view.setTranslationY((dimen / 209.9f)*position); view.setTranslationX(view.getWidth() * -position); view.setScaleX(scaleFactor); view.setScaleY(scaleFactor); } else { view.setAlpha(0); } } }