XformerRecyclerView

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

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



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


或这样


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

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的缩放系数,和透明系数。然后设置进去就可以了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,305评论 25 709
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一种新的协议。它实...
    香橙柚子阅读 24,606评论 8 183
  • 最近有跟朋友还有家人聊给诺留份保障的问题,我担心自己哪天突然发生点什么意外把他一个人留在这世界上我没法放心。他们听...
    丹娿丹阅读 1,342评论 0 0
  • 李贺《梦天》齐烟九点
    清水铁观音阅读 1,108评论 0 0
  • 位于四川省会成都西南二百里处的眉山市,岷江由北而南纵贯全境。这里山不高而秀,水不深而清,介岷峨之间,聚江山秀气;土...
    无为而字阅读 5,431评论 6 14

友情链接更多精彩内容