Android 仿今日头条的开源项目

本文作者分享了自己仿制今日头条开源项目的经历,包括使用到的第三方库如BaseRecyclerViewAdapterHelper、Retrofit和RxJava等。在实现日夜间模式切换时遇到了问题,通过深入源码找到解决方案,涉及LayoutInflater.Factory的使用。此外,还讨论了视频播放、新闻详情页的实现和解决列表复用导致的主题切换问题。
摘要由CSDN通过智能技术生成

前言

看到众多大神纷纷有了自己的开源项目,于是自己琢磨着也想做一个开源项目来学习下,因为每次无聊必刷的 app 就是今日头条,评论简直比内容都精彩,所以我打算仿今日头条来练练手,期间也曾放弃过,也遇到很多坑,拿出来跟大家分享一下,喜欢的记得给个 Star,当作是给我的鼓励和动力吧。
 

源码链接

https://github.com/yewei02538/TodayNews

PS :有兴趣的加入Android工程师交流QQ群:752016839 主要针对Android开发人员提升自己,突破瓶颈,相信你来学习,会有提升和收获。

效果图

 

 

 

 

 

 

 

 

2第三方库

  • BaseRecyclerViewAdapterHelper

  • ImageLoader

  • Retrofit

  • RxJava

  • ButterKnife

  • MultipleTheme

  • ColorTrackView

  • Gson

  • JieCaoVideoPlayer

 

技术要点

  • 主要是一些第三方库的使用

  • 首页顶部导航使用的 hongyang 大神的 ColorTrackView 然后做了一下封装来实现滑动渐变效果

  • 多种Item布局展示->BaseRecyclerViewAdapterHelper

  • 日夜间模式切换->MultipleTheme

  • 个人中心 自定义 ScrollView 实现下拉图片放大

  • 新闻详情我采用的是 RecyclerView 添加头的方式添加 WebView(当然是Adapter 里面添加),加载页面成功之后获取评论信息,点击评论图标滑动至评论第一条,这里我是调用recyclerView.smoothScrollToPosition(1);

  • 视频播放我使用的是 JieCaoVideoPlayer,一群大牛封装的代码,底层实际使用 ijkplayer,视频源均使用非正常手段获取,视频源地址分析请看我的另一篇博客 手撸一个今日头条视频下载器 http://www.weyye.me/detail/today-news-video/

问题1

在使用 MultipleTheme 的时候唯一的缺陷就是需要在布局里面大量使用到自定义控件,这对于我们的项目而言,布局看着很冗余,也有点恶心。。我有时候就在想,那我可不可以写原生控件,然后在特定的时机来个偷梁换柱换成我们的自定义控件呢?(比如我们布局写 RelativeLayout---转换成 MyRelativeLayout),似乎好像是可以的。

思路1

当时想到一个最简单最快实现的方法,也就是替换,我在布局里面写原生控件,然后在用工具全局替换成我们的自定义控件,但是假如我们换了包名,那就需要重新替换,这无疑是不易扩展的,所以这个方法放弃掉

思路2

不知道大家有木有发现就是,我们在布局里面写上ButtonImageViewTextView等这些控件的时候,在 5.0 以上运行的时候实际变成了AppCompatButtonAppCompatImageViewA

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值