仿煎蛋jiandan应用客户端源码

项目源码下载:

 

效果图


<ignore_js_op> 
<ignore_js_op>

 

 

 

项目整体介绍

从上面的效果图也可以看出来,我们使用的是Material Design风格,但是并不纯正,为了兼容4.x版本,我们使用Theme.AppCampat兼容主题、RecycleView和CardView来完成,从整体视觉效果来看比较统一和美观。同时为了整体的效果,使用开源项目material-Dialogs来实现Material Design效果的对话框,这个在点击回复,完善个人信息的功能点上有所体现。

除了界面,网络请求框架我选择的是Volley,原因是Volley对小数据量、请求频繁的网络操作进行了优化,对于这个项目比较合适,而且作为Google的推荐项目,现在已经完善的比较成熟了,经过了很多项目的实战验证,所以比较放心。而且扩展性非常强,可以定制我们自己的请求解析需求,这一点相信看过我项目的朋友,应该有所感受,在com.socks.jiandan.net包下的请求类都经过了我的定制,使用方便。而且很重要的一点是,Volley在2.3之后是基于HttpURLConnection的封装实现,默认支持gzip压缩,在4.0之后的版本,还支持结果缓存,所以在性能和数据传输量上,相比HttpClient有很大的提高。

在本项目中一个很重要的功能就是加载图片,所以在图片加载框架上需要特别注意。最初我选择的图片加载框架是Fresco,因为之前翻译过关于Fresco的特性的文章,感觉非常的强大,所以想试一试。但是在后面使用的时候,还是遇到了很多的问题,让我不得不暂时放弃Fresco,改用UIL。原因如下:

  • 推出时间太短,虽然功能强大,但是还没经过考验,还不很成熟。Fresco的更新频率很快,我开始用的时候还是0.1.0版本,后来在加载图片的时候遇到问题,在这个版本上,Fresco没有对有304缓存的图片进行处理,所以在加载这类图片的时候会出现失败,我给Fresco项目提交issue之后,他们回复我,Fresco已经升级,在0.2.0完成了问题修复。所以我觉得,Fresco还需要一段时间的考验和完善,才能被用到生产环境中,现在我不很推荐大家在项目中使用
  • 不支持wrap_content。放弃Fresco的一个很重要的原因就是因为它不支持wrap_content,Fresco只支持match和固定长宽,在这个项目中需要展示大量宽度match,高度不定的图片,因为Fresco显示图片的控件也是自己定制的,所以自定义控件这条路也比较难走,在没有找到更好的解决方案的情况下,我决定暂时放弃Fresco,改用UIL。在本项目中,只有在评论列表页的头像是使用的Fresco,其他地方都是使用UIL和自定义控件实现,具体实现方案我会在下面讲到。

在IOC框架的选择上,使用butter knife,之前一直使用AFinal,但是AFinal属于运行期绑定,会影响性能,butter knife属于编译期绑定,不会影响。使用butter knife使用非常方便,就拿来一用。在本项目中,我感觉其实并不是很需要IOC,仅作一个尝试而已,不必深究。

在完成网络状态切换的功能上,需要在MainActivity注册一个网络状态监听器,当网络状态发生改变的时候,通知当前显示的Fragment切换图片的加载模式,或者是提示网络状态变化情况。在这种需求下,使用接口是可以完成的,每个Fragment都实现MainActivity的一个接口,当网络状态发生变化的时候,MainActivity调用Fragment的接口方法即可。但是这样不仅很麻烦,而且会增加耦合性,为此,我使用EventBus完成了这个功能,实现很简单,大家看源码就可以,耦合度为0。

这个项目中的所有数据接口基本都是Json格式,所以选择一个好的解析框架是很重要的。我之前写过三篇文章介绍了Json的不同解析方法,虽然Jackson的解析速度快,但是gson确实用起来很熟悉,而且我们要解析的数据量并不大,性能上的差异微乎其微,所以我选择了我比较熟悉的gson。在解析的一些地方还用到了一些JSON,这个大家可以自由选择。

  • Json
  • Gson
  • Jackson

详细说明:http://android.662p.com/thread-6263-1-1.html

注意:本项目基于android studio开发,eclipse可能无法直接导入。 本项目是一个煎蛋网的非官网安卓客户端项目源码,API用的是煎蛋官方的。 项目虽小,五脏俱全,学习这个项目,你将学到 Android Studio开发Android的基本配置 对MD风格的Theme兼容 对Volley网络请求库的封装和自定义 Application、Activity和Fragment基类的基本设计 MVC架构的使用 对超长图片加载的解决方案 WebView与JS通信,及加载本地缓存图片的实现 RecyclerView自动加载、加载完成回调,以及item进入动画 多楼层回复自定义控件的实现 严格模式(StrictMode)的设置及用法 使用GreenDao对数据进行本地缓存 对网络状态的实时检测 对UIL的个性化设置、封装和基本使用 使用LeakCanary检测内存泄露 优化的功能 添加加载等待动画 添加加载失败提示 添加评论楼层过多隐藏 添加网络状态检测 优化无聊图列表显示,非WIFI状态下,显示GIF缩略图,点击后下载 加载模式全自动智能切换,显著提高加载速度,节省大量流量 修改图片详情页为完全沉浸效果 添加图片列表滚动检测,滚动状态暂停加载,进一步提高加载速度,减少卡顿 添加图片加载默认图片 添加当前栏目标志,避免重复切换 修改新鲜事列表页效果为CardView 由于小视频接口有问题,当加载成功的数据少于10条时,会自动加载下一页,直到大于10条为止 添加新鲜事大图模式切换功能 使用到的开源框架 Volley Universal Image Load butter knife EventBus material-dialogs gson GreenDao Loading LeakCanary
中文名: 构建自己最出色的WordPress主题 原名: Build Your Own Wicked Wordpress Themes 作者: Alan Cole Raena Jackson Armitage Brandon R. Jones Jeffrey Way 资源格式: PDF 出版社: SitePoint书号: 978-0980455298发行时间: 2010年09月04日 地区: 美国 语言: 英文 简介: 内容介绍: Wicked WordPress Themes is a step-by-step guide to creating beautiful themes for the world's most popular CMS, WordPress. By following the book's advice, readers can produce designs that are aesthetically stunning, consistent, and for-purpose -whether it's for their own use, or to drive a high price on the theme marketplace. All facets of theme design are covered: from design, coding, and deployment, to ensuring readers' designs are ready-to-go as soon as they're installed. Wicked WordPress Themes teaches readers how to leverage theme design frameworks to dramatically shorten development time, enabling them to enter the theme market faster. 作者介绍: Alan Cole Allan Cole is a web designer and developer based in Brooklyn, NY and is widely known as a Thematic framework guru. He specializes in front-end user experience and WordPress customization. Raena Jackson Armitage Raena Jackson Armitage is an Australian web developer with a background in content management and training. A former SitePoint technical editor, you’ll find her speaking at some of the more popular geek conferences. Brandon R. Jones Brandon R. Jones has developed some of the Web's best-selling WordPress themes. He has a strong background in graphic design, digital illustration, and user interface design. Jeffrey Way Jeffrey Way manages CodeCanyon, an online code marketplace, and Nettuts, a popular web development tutorial site. He also ran the biggest online marketplace for buying and selling WordPress themes—Theme Forest—for 2 years. 目录: Preface 1. Introducing WordPress 2. Planning Your Theme 3. Theme Design 101 4. Theme Frameworks 5. Advanced Theme Construction 6. Widgets 7. Theme Options 8. Selling Your Theme Index
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值