注册

时隔2年终于开源了基于RecyclerView的阅读器动画方案

Tips:这是一次针对广告业务场景下阅读器动画实现方案的探索。

实现效果

image.png 项目地址:github:BookView

  • app module:完整的阅读器demo
  • gpu_test module:独立的仿真动画demo

手绘一张图,呈现实现原理

如果用文字来阐述原理难免要长篇大论,何况这里涉及到Z轴View堆叠,借此机会展示下我的绘画能力吧🐶(瞎搞)

核心类就4个,它们的职责跟它们的名字很相近。

  • BookView 摆放 BookRecyclerView 与PuppetView
  • BookRecyclerView 作为底层容器,接受滑动事件,完成页面更换与事件分配
  • PaperLayout 作为页面卡片根布局,也就是设置给RecyclerView.Adapter加载的布局
  • PuppetView 但本身不处理任何事件,只是展示动画 

这东西前后花了得有2周的时间,从0开发了仿真动画,涉及到一些三角函数,相似三角形还专门复习了初中的相关课程。RecycleView,LayoutManager也是那时候深入学习的。

写在最后

当时会下这么多功夫去开发这个阅读器,其真正的原因是我当时还负责阅读器+广告两个业务的产品设计。没错就是跟很多创业团队一样一人肩多职,也正是这份对产品的追求才推着我不断追求更好的产品体验,进而才有了更多的技术积累。直到现在,偶尔在团队人手紧张时我还会负责一些产品设计工作。

很多时候会分不清面前的挑战是挫折还是机遇,但只要沉下心去解决问题,结果就不会都是坏的。

我很喜欢的一句话「铁打的个人能力,流水的公司」用在这里相当合适。

在2年前做阅读器产品时发过一篇文章:LayoutManager实现翻页动画 - 掘金,目的是抛出一个解决方案的同时寻求不同的思路。同时在V2上发过一篇帖子:http://www.v2ex.com/t/694298#re…, 收集到了不同的灵感。

2年前就有人跟我要完整demo,当时我也很想放出来,但出于职业素养维护公司利益没有这样做。可就在前两天有个掘金的同学很真诚的再次跟我询问这个方案,妥妥的点燃了我回馈社区的心呀。现在那个项目垮了,公司也....。那我可没啥负担了,完整的开源出来,希望能帮助一些与他一样碰到阻碍的人,相互成长。我一直也受到了很多社区帮助,包括Google GDE,这算是我的一点回馈吧。

清理好后优先发给了他,晚上看到他给我反馈的视频,还是蛮开心的。

之前我有几次想要好好整理下做个开源,但最终都搁置了。现在想想还是因为那时候纯粹是出于功利心吧。当时想着这东西还是有点门槛的,微信读书做到50fps,我做到40fps+还支持广告,放出来赚点star不是很轻松,可见虚荣对人的激励是很有限的。现在的我也更愿意做一些获取深度快乐的事情。


作者:橘子没了
链接:https://juejin.cn/post/7219288959113330744
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

0 个评论

要回复文章请先登录注册