zengzhifeng / ZhihuDialyPrue

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

#知乎日报修改版 根据知乎日报网络请求API自实现的一个知乎日报客户端。

##制作日程

###1.制作启动界面 2015-5-22

1)通过设备尺寸构建API请求

2)使用HttpURLConnection下载网络数据

3)使用文件制作图片作者和图片缓存

###2.使用View Animation制作启动页渐隐动画 2015-5-23

Error )动画有时间,监听动画播放完毕之后再跳转到下一个MainActivity, 但是问题是此时播放完成和加载Activity之间的时差会导致动画完成之后 显示一张图片而不是直接切换。

###3.使用Gson解析每天最新的新闻信息,并提交数据库保存 2015-5-25

1)sqlite数据库的插入和创建,insert方法已经确保了不满足约束条件时候不至ANR异常

2)使用Executor服务创建一个工具类,顺序执行json数据的下载,解析和保存

###4.完成数据的下载和保存,发现启动页首次启动无网络的崩溃问题 2015-5-27

1)通过在程序中预先打包一个drawable和string来定义在无网络的时候加载的数据, drawable使用体积较小的jpeg图片。

2)由于从drawable编码bitmap速度较慢,采用缩放加载的方式

OOM问题暂时没有遇到过,暂时没有经验

###5.准备数据异步加载工具Loader的使用 2015-5-27

###6.主要UI界面构建完毕 2015-5-29

1)在RecyclerView中实现多类型的视图

2)大体模仿了知乎日报首页的热点新闻效果,暂时没有加入自动切换

3)完成Loader与SwipeRefreshLayout的结合,在RecyclerView的Adapter中为 两个Adapter简单的刷新数据。

4)重写了下载首页新闻数据的线程,从混合的Callable改成单纯的Thread, 原因是处理回调数据的时候有未知Bug导致数据无法获取到以至于无法插入数据库。

5)了解Loader的主要使用方式和LoaderManager的基本使用方式

###7.重构项目架构,修改API和某些类的使用 2015-5-31

1)解构RecyclerView的Adapter,将原来复杂的类按照必要性重新分离

2)发现FragmentPagerAdapter的问题,暂时无法解决,只能改用FragmentStatePagerAdapter

3)修改了启动页,讲ImageView动画结束后也设置位INVISIBLE

###8.获取新闻详细页并显示 2015-6-2

1)使用WebView加载获取到的HTML数据,数据是一系列的div来标记的

2)新建数据表,将数据缓存到数据库中

3)为每个item添加了监听,会转到详情页

4)将每次进入缓存页缓存的div按需加载(每次进入详情页的时候会判断数据库中是否存在数据),这个规则会在稍后加入到其他数据表的插入操作和查询例程中。

5)按照设想原本是想要加入一个分享功能,但是按照官方文档设置后分享按钮无法使用。

###9.储存昨天获取的信息列表 2015-6-3

1)进入MainActivity的时候会检查日期,只要时间过了,那么就移动today表中的数据到last表中,并加入时间头。

###10.完全改版,准备开始使用Service+ContentProvider+Loader加载数据 2015-6-14

1)使用ContentProvider进行数据库操作

2)使用Service后台下载并处理数据

###11.用Provider修改详情页的缓存方式 2015-6-14

1)修改ContentActivity的后台实现方式,加入Provider作为Loader数据源

2)分开用来下载数据的Loader和从数据库中加载数据的Loader,按照数据库中数据的有无选择加载方式,Provider使用的是内联DBHelper,并新开了一个数据库

3)修改了详情实体类的实现,加入了保存CSS的项,将试图在WebView中加载CSS进行渲染。

###12.使用CSS渲染阅读详情页

1)通过HTML头中添加CSS外链地址,实现出内容的排版

2)Bug是在我的4.0.4和模拟器5.1.0上两个HTML(DIV)内容的加载有不同,在实体机上(4.0.4)是会忽略主体DIV之前没有用的换行的,但是在5.1.0中却没有,所以在模拟骑上测试时在正文和图片Title之前会有一大段的空白,有趣的是这个空白正好放下Title那个FrameLayout,看来可以考虑根据系统版本编写layout了

3)最大的Bug是如果在没有网络的情况下打开应用会崩溃,暂时没想到有什么好方法了。(最近考试月)

4)如果可以的话,后续要加入一个分享模块,集成一下各个网站的分享sdk,同时尝试解决一下如何仿制知乎日报首页的多View显示(按照日期分title)

About


Languages

Language:Java 100.0%