# TodayNews
一个仿今日头条的开源项目,是基于MVP+[RxJava](https://github.com/ReactiveX/RxJava)+[Retrofit](https://github.com/square/retrofit)
# Blog
[Android仿今日头条的开源项目](http://www.weyye.me/detail/my-project-today-news/)
[自适应Tab宽度可以滑动文字逐渐变色的TabLayout](http://www.weyye.me/detail/color-track-tablayout/)
# Apk
[点击下载](/screenshot/todaynews.apk)
# 项目截图
![](/screenshot/01.png)
![](/screenshot/02.png)
![](/screenshot/03.png)
![](/screenshot/04.png)
![](/screenshot/05.png)
![](/screenshot/06.png)
![](/screenshot/07.png)
![](/screenshot/08.jpg)
# 第三方库
* [ColorTrackTabLayout](https://github.com/yewei02538/ColorTrackTabLayout)
* [BaseRecyclerViewAdapterHelper](https://github.com/CymChad/BaseRecyclerViewAdapterHelper)
* [ImageLoader](https://github.com/nostra13/Android-Universal-Image-Loader)
* [Retrofit](https://github.com/square/retrofit)
* [RxJava](https://github.com/ReactiveX/RxJava)
* [ButterKnife](https://github.com/JakeWharton/butterknife)
* [MultipleTheme](https://github.com/dersoncheng/MultipleTheme)
* [Gson](https://github.com/google/gson)
* [JieCaoVideoPlayer](https://github.com/lipangit/JieCaoVideoPlayer)
# 技术要点
* 主要是一些第三方库的使用
* 多种Item布局展示->[BaseRecyclerViewAdapterHelper](https://github.com/CymChad/BaseRecyclerViewAdapterHelper)
* 日夜间模式切换->[MultipleTheme](https://github.com/dersoncheng/MultipleTheme)
* 新闻详情我采用的是RecyclerView添加头的方式添加WebView(当然是Adapter里面添加),加载页面成功之后获取评论信息,点击评论图标滑动至评论第一条,这里我是调用`recyclerView.smoothScrollToPosition(1);`
* 视频播放我使用的是[JieCaoVideoPlayer](https://github.com/lipangit/JieCaoVideoPlayer),一群大牛封装的代码,底层实际使用[ijkplayer](https://github.com/Bilibili/ijkplayer),视频源均使用非正常手段获取,视频源地址分析请看我的另一篇博客[手撸一个今日头条视频下载器](http://www.weyye.me/detail/today-news-video/)
在使用[MultipleTheme](https://github.com/dersoncheng/MultipleTheme)的时候唯一的缺陷就是需要在布局里面大量使用到自定义控件,这对于我们的项目而言,布局看着很冗余,也有点恶心。。我有时候就在想,那我可不可以写原生控件,然后在特定的时机来个偷梁换柱换成我们的自定义控件呢?似乎好像是可以的,当我们加载布局的时候最终都会用`LayoutInflater`来加载,所以我打算从这里入手,看源码我发现有一个接口可以利用->`Factory`,这个接口有一个方法
``` java
public interface Factory {
/**
* Hook you can supply that is called when inflating from a LayoutInflater.
* You can use this to customize the tag names available in your XML
* layout files.
*
* <p>
* Note that it is good practice to prefix these custom names with your
* package (i.e., com.coolcompany.apps) to avoid conflicts with system
* names.
*
* @param name Tag name to be inflated.
* @param context The context the view is being created in.
* @param attrs Inflation attributes as specified in XML file.
*
* @return View Newly created view. Return null for the default
* behavior.
*/
public View onCreateView(String name, Context context, AttributeSet attrs);
}
```
果然功夫不负有心人,如果我们实现了这个接口,最终加载布局的时候那么就会调用`onCreateView`在这里面来实现偷梁换柱替换成我们的自定义控件
# 版本
## v1.0.1
* 修复栏目删除崩溃
* 修改首页多个频道颜色渐变为[ColorTrackTabLayout](https://github.com/yewei02538/ColorTrackTabLayout)
* 加入频道存储至本地
* 添加修改或移动频道首页联动更新
* 加入加载中动画
## v1.0.0
* 基本框架以及首页获取新闻数据展示、日夜间切换
* 加入视频解析以及播放功能
# TODO
* 微头条
* 无图模式
* 加入今日头条的下拉刷新
* 加入真实数据(登陆,注册、收藏等),使用[Bmob后端云](http://www.bmob.cn/)
* 加入个人主页、搜索等未写界面
* 待添加...
# 声明
这个属于个人开发作品,仅做学习交流使用,如用到实际项目还需多考虑其他因素如并发等,请多多斟酌。**诸位勿传播于非技术人员,拒绝用于商业用途,数据均属于非正常渠道获取,原作公司拥有所有权利。**
# License
Copyright (C) 2017 WeyYe
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
没有合适的资源?快使用搜索试试~ 我知道了~
小程序源码 今日头条(仿版).zip
共461个文件
png:194个
xml:126个
java:121个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 71 浏览量
2023-03-11
10:00:00
上传
评论
收藏 5.02MB ZIP 举报
温馨提示
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,本人不对所涉及的版权问题或内容负法律责任。如有侵权,请举报或通知本人删除。
资源推荐
资源详情
资源评论
收起资源包目录
小程序源码 今日头条(仿版).zip (461个子文件)
todaynews.apk 3.65MB
gradlew.bat 2KB
.gitignore 97B
.gitignore 7B
maven_push.gradle 3KB
build.gradle 2KB
build.gradle 877B
build.gradle 790B
settings.gradle 37B
gradlew 5KB
gradle-wrapper.jar 49KB
OverScrollView.java 54KB
JCVideoPlayer.java 41KB
JCVideoPlayerStandard.java 28KB
ChannelAdapter.java 17KB
SwipeBackLayout.java 15KB
DateUtils.java 12KB
ColorTrackTabLayout.java 11KB
CommonUtil.java 10KB
ColorTrackView.java 10KB
BaseActivity.java 8KB
JCMediaManager.java 8KB
PullZoomLayout.java 7KB
HomeFragment.java 7KB
ChannelDialogFragment.java 6KB
ViewAttributeUtil.java 6KB
BaseNewsActivity.java 6KB
JCResizeTextureView.java 5KB
HtmlTextView.java 5KB
LoadingFlashView.java 5KB
NewsDetail.java 5KB
HeaderZoomLayout.java 5KB
NewsListFragment.java 5KB
MyScrollView.java 4KB
VideoModel.java 4KB
ChannelActivity.java 4KB
JCUtils.java 4KB
MeFragment.java 4KB
News.java 4KB
VideoPathDecoder.java 4KB
NewsAdapter.java 4KB
ColorUiUtil.java 4KB
BaseFragment.java 4KB
UrlImageGetter.java 4KB
ProgressWebView.java 3KB
SplashActivity.java 3KB
BaseMvpFragment.java 3KB
NetworkUtil.java 3KB
MainActivity.java 3KB
JCVideoPlayerSimple.java 3KB
AppClient.java 3KB
VideoAdapter.java 2KB
FragmentController.java 2KB
ImageOptHelper.java 2KB
ColorButton.java 2KB
SkinFactory.java 2KB
ItemDragHelperCallBack.java 2KB
VideoDetailActivity.java 2KB
ColorTextView.java 2KB
CommentList.java 2KB
Video.java 2KB
NewsDetailHeaderView.java 2KB
ColorListView.java 2KB
ApiService.java 2KB
VideoFragment.java 2KB
ColorImageView.java 2KB
VideoListFragment.java 2KB
EasyJCVideoPlayer.java 2KB
ColorToggleButton.java 2KB
ColorEditText.java 2KB
ImageLoaderUtils.java 2KB
BasePresenter.java 1KB
ColorRadioButton.java 1KB
ChannelPagerAdapter.java 1KB
BasePagerFragment.java 1KB
SharedPreferencesMgr.java 1KB
BaseMvpActivity.java 1KB
BaseApplication.java 1KB
BaseCallBack.java 1KB
ColorHorizontalScrollView.java 1KB
BaseDetailPresenter.java 1KB
ColorRelativeLayout.java 1KB
ColorAbsoluteLayout.java 1KB
ColorLinearLayout.java 1KB
ColorFrameLayout.java 1KB
ColorScrollView.java 1KB
ColorCheckBox.java 1KB
ColorImageButton.java 1KB
JCVideoPlayerManager.java 1KB
ColorViewGroup.java 1KB
ColorView.java 1KB
Comment.java 1KB
NewsDetailActivity.java 1KB
NewsListPresenter.java 1KB
RxBus.java 974B
CommentAdapter.java 966B
AttentionFragment.java 946B
TitlePagerAdapter.java 907B
RxCountDown.java 816B
Channel.java 753B
共 461 条
- 1
- 2
- 3
- 4
- 5
资源评论
金枝玉叶9
- 粉丝: 140
- 资源: 7639
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功