XformerRecyclerView

我的github:https://github.com/fcott19/XformerRecyclerView

最近有个小伙伴需要用到类似与画栏的效果,像下面这样


XformerRecyclerView_第1张图片

于是突发奇想 ,写了这个XformerRecyclerView,可以根据自己的需求自定义任何形式的转场动画,比如这样

XformerRecyclerView_第2张图片

或这样

XformerRecyclerView_第3张图片

想要自定义这些动画很简单,只需要如下

recyclerView.setPageTransformer(new PageTransformer() {
            @Override
            public void transformPage(View childView, float intervalPercent, float percent) {
                
            }
        });

在transformPage方法中对childView做修改即可。
参数:
childView:recycleview中的item
percent:位置系数,当childView在屏幕正中时,percent为0。当childView的中心在屏幕左边界时,percent为-1。当childView的中心在屏幕右边界时,percent为1。
intervalPercent:相邻childView之间相差的percent

据此,我们看一下第一张图片中,PageTransformer的具体实现。

@Override
    public void transformPage(View page,final float intervalPercent, float percent) {
        float scaleFactor = (1 - scaleSize) * (1 - Math.abs(percent)) + scaleSize;
        if (scaleFactor < scaleSize) {
            scaleFactor = scaleSize;
        }
        page.setScaleX(scaleFactor);
        page.setScaleY(scaleFactor);
        page.setAlpha(minAlpha + (scaleFactor - scaleSize)
                / (1 - scaleSize) * (1 - minAlpha));
    }

很简单,根据percent计算childview的缩放系数,和透明系数。然后设置进去就可以了

你可能感兴趣的:(XformerRecyclerView)