Android - 自定义 ViewPager 动画

Android - Custom ViewPager animation

这是我必须实现的。我已经有了一个垂直的 viewpager,但我缺乏转换经验,我不知道该怎么做...

下一张要显示的卡片的顶部预览在当前显示的卡片下方。当下一张卡片被触摸并拖动到顶部时,动画开始,下一张卡片向上滑动,同时当前卡片被缩小然后向上滑动一点,以便在过渡后显示它的顶部。

非常感谢你的帮助,因为这是一件时间紧迫的事情

下面的代码符合您的要求吗?

制作你的原创变形金刚:

public class SlideUpTransformer implements ViewPager.PageTransformer {

    @Override
    public void transformPage(View view, float position) {
        int pageWidth = view.getWidth();
        int pageHeight = view.getHeight();

        if (-1 < position && position < 0) {
            float scaleFactor = 1 - Math.abs(position) * 0.1f;
            float verticalMargin = pageHeight * (1 - scaleFactor) / 2;
            float horizontalMargin = pageWidth * (1 - scaleFactor) / 2;
            if (position < 0) {
                view.setTranslationX(horizontalMargin - verticalMargin / 2);
            } else {
                view.setTranslationX(-horizontalMargin + verticalMargin / 2);
            }
            view.setScaleX(scaleFactor);
            view.setScaleY(scaleFactor);
        }

        view.setTranslationX(view.getWidth() * -position);

        if (position > 0) {
            float yPosition = position * view.getHeight();
            view.setTranslationY(yPosition);
        }
    }
}

这样使用:

viewPager.setPageTransformer(false, new SlideUpTransformer());

这是这样工作的: