个人项目-Material-Design版花瓣网图片App
来源:互联网 发布:java配置 编辑:程序博客网 时间:2024/04/29 13:05
介绍
- 作为一个花瓣网用户实在受不了Android版的崩溃而且已经一年多没有更新。工作之余网络抓包和反编译,要自己写一个App,因为毕竟是别人的项目也不指望能上架,就直接开源放到github上,如果侵权请联系我及时删除。
- 源代码放在GitHub:项目地址
- 下面介绍目前的工作内容
更新记录
- 现在兼容包升级导致API-20以下Fresco使用异常,目前已经统一使用CompatUtils工具类,内部使用VectorDrawableCompat获取VectorDrawable资源,保证低版本的运行。
UI
既然说是Material-Design版,肯定界面效果要足够MD,眼见为实。
主界面:瀑布流、下拉自动加载、浮动按钮、CardView
侧滑界面:MD的抽屉式导航
图片界面:向上滑动隐藏图片下拉显示,半透明状态栏
用户界面:背景毛玻璃,Tab标签下可以左右滑动
架构
这个项目在写在很久之前,当时MVP架构网络上各种分析描述,但是感觉都是各说各的。不确定项目是否采用MVP架构就先动手写代码,随时准备重构项目。就在不久前Google发布Android Architecture Blueprints [beta],终于感觉这事有点靠谱了,我现在已经在动手重构项目了。
分析博文在这里:MVP架构-官方MVP项目和MVP-RxJava项目架构对比分析解读
目前的架构:
基本思想是采用模板方法模式,父类控制代码结构,子类实现,部分具有相同功能的再提供父类实现。
例如BaseSwipeViewPagerActivity
是所有具有上拉刷新SwipeRefreshLayout和左右滑动ViewPager的子Activity类的父类。BaseRecyclerHeadFragment
是所有具有能够添加头尾View的RecyclerView的父类Fragment,内部主要实现向下滑动自动加载数据。每个Activity负责逻辑控制,其中会包含都会有一至多个Fragment负责UI显示,尽可能的不在Activity有网络操作。
技术点
由于是个人项目所以全部采用目前最新的和最热门技术。
RxJava
很多基本的逻辑使用RxJava/RxAndroid来实现异步响应,简化了很多异步回调的代码。比如欢迎界面的实现,详解点这里RxAndroid项目实践-使用RxJava响应式编码实现知乎日报的欢迎界面
Retrofit
网络模块使用Retrofit,搭配RxJava实在是爽。
同时还很简洁的实现了Https的网络访问。功能强大。Retrofit整体框架主要采用代理模式,使得简化我们的网络调用操作,真正的内部还是采用OkHttp,这就导致实现下载上传进度监听会有点麻烦。目前也已经实现不会有内存泄露,具体参考看DownloadService.java后台服务单线程图片下载实现。
Fresco
图片加载框架使用的是Fresco,同样的功能强大,但是使用复杂。我包装了一个类ImageLoadFresco
,采用生成器模式,配置很多的默认实现,同时能够实现复杂操作,具体代码和介绍Fresco的封装和使用说明以及获取缓存中的Bitmap对象。
其他
其他方面,每个功能模块都会提供工具类或者包装类,分化代码使得相同功能代码能够重用,减少代码量。
- 个人项目-Material-Design版花瓣网图片App
- App Material Design.
- 基于Material Design设计的分享文字图片的APP
- 基于Material Design设计的分享文字图片的APP
- 基于Material Design设计的分享文字图片的APP
- Material Design--新闻浏览APP
- Material Design开源项目
- Android Material Design-Creating Apps with Material Design(用 Material Design设计App)-(零)
- Android Material Design-Creating Apps with Material Design(用 Material Design设计App)-(零)
- Android-Material Design风格MVP模式的新闻App(视频图片音乐)
- python爬取花瓣网图片
- 使用脚本拷贝官方的 Material Design 图标到自己的 Android App 项目
- android material design设计APP源码
- 一步步构建Material Design风格App
- 让你的 APP换上Material Design
- Material Design+RxJava+Retrofit+MVP App
- Android Material Design 风格的新闻App
- 福利来啦!花瓣网图片批量下载助手APP终于完工,再也不用一张一张保存美图了。
- 利用runtime懒人实现iOS 防止按钮连续点击 连续响应事件,可以自己设置时间间隔,拖进工程中立即生效
- Organic herb
- ReFlux详解
- 很好的static用法总结,真真受教了
- 二分和枚举(主要是二分思想)
- 个人项目-Material-Design版花瓣网图片App
- POJ 1423 神奇公式计算N!位数
- SyntaxHighlighter代码高亮插件显示时第一行会多出几个空格问题。
- java之取得系统时间
- school
- 简单字符串处理
- 羽毛球拍的选择
- organici iherb2
- 这个题,这个分析很重要啊!